Namespaces
-
namespace @nonymous_namespace -
namespace AA -
namespace AArch64 -
namespace AArch64BuildAttributes -
namespace AMDGPU -
namespace AMDGPUAS -
namespace APIntOps -
namespace ARM -
namespace ARMBuildAttrs -
namespace ArchYAML -
namespace AttributeFuncs -
namespace BTF -
namespace BitmaskEnumDetail -
namespace COFF -
namespace COFFYAML -
namespace CSKY -
namespace CSKYAttrs -
namespace CallingConv -
namespace Check -
namespace CodeGenOpt -
namespace CodeModel -
namespace CodeViewYAML -
namespace ConverterEBCDIC -
namespace DOT -
namespace DWARFFlavour -
namespace DWARFYAML -
namespace DXContainerYAML -
namespace DomTreeBuilder -
namespace DwarfCFIEH -
namespace ELF -
namespace ELFAttrs -
namespace ELFYAML -
namespace EngineKind -
namespace FPOpFusion -
namespace FloatABI -
namespace GCOV -
namespace GISelAddressing -
namespace GOFF -
namespace GOFFYAML -
namespace GVNExpression -
namespace GraphProgram -
namespace HWASanAccessInfo -
namespace HexStyle -
namespace HexagonAttrs -
namespace IDFCalculatorDetail -
namespace IRSimilarity -
namespace ISD -
namespace IndexedCGData -
namespace IndexedInstrProf -
namespace InlineConstants -
namespace IntervalMapImpl -
namespace Intrinsic -
namespace JumpTable -
namespace LCOMM -
namespace LegacyLegalizeActions -
namespace LegalityPredicates -
namespace LegalizeActions -
namespace LegalizeMutations -
namespace Loc -
namespace LoongArch -
namespace MCID -
namespace MCOI -
namespace MCParserUtils -
namespace MIPatternMatch -
namespace MISched -
namespace MSP430Attrs -
namespace MSSAHelpers -
namespace MachO -
namespace MachOYAML -
namespace MinidumpYAML -
namespace Mips -
namespace N86 -
namespace NVPTXAS -
namespace OMF -
namespace OffloadYAML -
namespace PBQP -
namespace PICLevel -
namespace PICStyles -
namespace PIELevel -
namespace PPC -
namespace PatternMatch -
namespace RISCV -
namespace RISCVAttrs -
namespace RISCVISAUtils -
namespace RISCVVType -
namespace RTLIB -
namespace RawInstrProf -
namespace RegState -
namespace Reloc -
namespace SCEVPatternMatch -
namespace SDPatternMatch -
namespace ScaledNumbers -
namespace Sched -
namespace SharedLiveDebugValues -
namespace SwitchCG -
namespace SymbolRewriter -
namespace SyncScope -
namespace TLSModel -
namespace TableGen -
namespace TargetOpcode -
namespace TargetStackID -
namespace ThinLTOCodeGeneratorImpl -
namespace ThreadModel -
namespace VFABI -
namespace VNCoercion -
namespace VPlanPatternMatch -
namespace WasmYAML -
namespace WebAssembly -
namespace Win64EH -
namespace WinEH -
namespace X86 -
namespace X86AS -
namespace X86Disassembler -
namespace X86II -
namespace X86ISD -
namespace X86Local -
namespace X86_MC -
namespace XCOFF -
namespace XCOFFYAML -
namespace Xtensa -
namespace ZeroCallUsedRegs -
namespace adl_detail -
namespace afdo_detail -
namespace at -
namespace bfi_detail -
namespace binaryformat -
namespace bitc -
namespace bitfields_details -
namespace callable_detail -
namespace cas -
namespace cfg -
namespace cfi_verify -
namespace cgdata -
namespace cl -
namespace codegen -
namespace codelayout -
namespace codeview -
namespace compression -
namespace consthoist -
namespace coro -
namespace coverage -
namespace ctx_profile -
namespace densemap -
namespace detail -
namespace details -
namespace directive -
namespace driver -
namespace dsymutil -
namespace dwarf -
namespace dwarf_linker -
namespace dwarfdump -
namespace dwarfgen -
namespace dwarfutil -
namespace dxbc -
namespace dxil -
namespace exegesis -
namespace fp -
namespace fuzzerop -
namespace gi -
namespace gsym -
namespace gtest_suite_ParameterizedTest_ -
namespace gvn -
namespace hashbuilder_detail -
namespace hashing -
namespace hlsl -
namespace ifs -
namespace ilist_detail -
namespace impl -
namespace impl_detail -
namespace internal -
namespace ir2vec -
namespace irsymtab -
namespace itanium_demangle -
namespace jitlink -
namespace json -
namespace jumpthreading -
namespace legacy -
namespace lltok -
namespace logicalview -
namespace lowertypetests -
namespace lsp -
namespace lto -
namespace mc -
namespace mca -
namespace mcdwarf -
namespace mcdxbc -
namespace mdconst -
namespace memprof -
namespace memtag -
namespace minidump -
namespace mir2vec -
namespace misexpect -
namespace ms_demangle -
namespace msf -
namespace msgpack -
namespace mustache -
namespace numbers -
namespace nvvm -
namespace objcarc -
namespace objcopy -
namespace objdump -
namespace object -
namespace offloading -
namespace omp -
namespace opt -
namespace opt_tool -
namespace orc -
namespace ore -
namespace outliner -
namespace parallel -
namespace pdb -
namespace pgo -
namespace pointer_union_detail -
namespace rc -
namespace rdf -
namespace reassociate -
namespace remarks -
namespace remarkutil -
namespace safestack -
namespace sampleprof -
namespace sampleprofutil -
namespace sandboxir -
namespace sframe -
namespace slpvectorizer -
namespace support -
namespace symbolize -
namespace sys -
namespace telemetry -
namespace tgtok -
namespace this_thread -
namespace trailing_objects_internal -
namespace unittest -
namespace vfs -
namespace vputils -
namespace wasm -
namespace wholeprogramdevirt -
namespace windows_manifest -
namespace xray -
namespace yaml
Enumerations
enum
| Name | Value |
|---|---|
| TB_INDEX_0 | 0 |
| TB_INDEX_1 | 1 |
| TB_INDEX_2 | 2 |
| TB_INDEX_3 | 3 |
| TB_INDEX_4 | 4 |
| TB_INDEX_MASK | 0x7 |
| TB_NO_REVERSE | 1 << 3 |
| TB_NO_FORWARD | 1 << 4 |
| TB_FOLDED_LOAD | 1 << 5 |
| TB_FOLDED_STORE | 1 << 6 |
| TB_ALIGN_SHIFT | 7 |
| TB_ALIGN_1 | 0 << TB_ALIGN_SHIFT |
| TB_ALIGN_16 | 4 << TB_ALIGN_SHIFT |
| TB_ALIGN_32 | 5 << TB_ALIGN_SHIFT |
| TB_ALIGN_64 | 6 << TB_ALIGN_SHIFT |
| TB_ALIGN_MASK | 0x7 << TB_ALIGN_SHIFT |
| TB_BCAST_TYPE_SHIFT | TB_ALIGN_SHIFT + 3 |
| TB_BCAST_W | 1 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_D | 2 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_Q | 3 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_SS | 4 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_SD | 5 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_SH | 6 << TB_BCAST_TYPE_SHIFT |
| TB_BCAST_MASK | 0x7 << TB_BCAST_TYPE_SHIFT |
enum CombineLevel
| Name | Value |
|---|---|
| BeforeLegalizeTypes | 0 |
| AfterLegalizeTypes | 1 |
| AfterLegalizeVectorOps | 2 |
| AfterLegalizeDAG | 3 |
enum LoopIdiomVectorizeStyle
| Name | Value |
|---|---|
| Masked | 0 |
| Predicated | 1 |
enum StructuralHashOptions
| Name | Value |
|---|---|
| None | 0 |
| Detailed | 1 |
| CallTargetIgnored | 2 |
enum AsanDtorKind
| Name | Value |
|---|---|
| None | 0 |
| Global | 1 |
| Invalid | 2 |
enum AlignStyle
| Name | Value |
|---|---|
| Left | 0 |
| Center | 1 |
| Right | 2 |
enum LoopPeelDirection
| Name | Value |
|---|---|
| LPD_Front | 0 |
| LPD_Back | 1 |
enum FloatStyle
| Name | Value |
|---|---|
| Exponent | 0 |
| ExponentUpper | 1 |
| Fixed | 2 |
| Percent | 3 |
enum WaitForUnlockResult
| Name | Value |
|---|---|
| Success | 0 |
| OwnerDied | 1 |
| Timeout | 2 |
enum InstructionUniformity
| Name | Value |
|---|---|
| Default | 0 |
| AlwaysUniform | 1 |
| NeverUniform | 2 |
enum ChangePrinter
| Name | Value |
|---|---|
| None | 0 |
| Verbose | 1 |
| Quiet | 2 |
| DiffVerbose | 3 |
| DiffQuiet | 4 |
| ColourDiffVerbose | 5 |
| ColourDiffQuiet | 6 |
| DotCfgVerbose | 7 |
| DotCfgQuiet | 8 |
enum MCSymbolAttr
| Name | Value |
|---|---|
| MCSA_Invalid | 0 |
| MCSA_Cold | 1 |
| MCSA_ELF_TypeFunction | 2 |
| MCSA_ELF_TypeIndFunction | 3 |
| MCSA_ELF_TypeObject | 4 |
| MCSA_ELF_TypeTLS | 5 |
| MCSA_ELF_TypeCommon | 6 |
| MCSA_ELF_TypeNoType | 7 |
| MCSA_ELF_TypeGnuUniqueObject | 8 |
| MCSA_Global | 9 |
| MCSA_LGlobal | 10 |
| MCSA_Extern | 11 |
| MCSA_Hidden | 12 |
| MCSA_Exported | 13 |
| MCSA_IndirectSymbol | 14 |
| MCSA_Internal | 15 |
| MCSA_LazyReference | 16 |
| MCSA_Local | 17 |
| MCSA_NoDeadStrip | 18 |
| MCSA_SymbolResolver | 19 |
| MCSA_AltEntry | 20 |
| MCSA_PrivateExtern | 21 |
| MCSA_Protected | 22 |
| MCSA_Reference | 23 |
| MCSA_Weak | 24 |
| MCSA_WeakDefinition | 25 |
| MCSA_WeakReference | 26 |
| MCSA_WeakDefAutoPrivate | 27 |
| MCSA_WeakAntiDep | 28 |
| MCSA_Memtag | 29 |
| MCSA_OSLinkage | 30 |
| MCSA_XPLinkage | 31 |
enum IntegerStyle
| Name | Value |
|---|---|
| Integer | 0 |
| Number | 1 |
enum OnCuIndexOverflow
| Name | Value |
|---|---|
| HardStop | 0 |
| SoftStop | 1 |
| Continue | 2 |
enum ExpandVariadicsMode
| Name | Value |
|---|---|
| Unspecified | 0 |
| Disable | 1 |
| Optimize | 2 |
| Lowering | 3 |
enum stream_error_code
| Name | Value |
|---|---|
| unspecified | 0 |
| stream_too_short | 1 |
| invalid_array_size | 2 |
| invalid_offset | 3 |
| filesystem_error | 4 |
enum SDNP
| Name | Value |
|---|---|
| SDNPCommutative | 0 |
| SDNPAssociative | 1 |
| SDNPHasChain | 2 |
| SDNPOutGlue | 3 |
| SDNPInGlue | 4 |
| SDNPOptInGlue | 5 |
| SDNPMayLoad | 6 |
| SDNPMayStore | 7 |
| SDNPSideEffect | 8 |
| SDNPMemOperand | 9 |
| SDNPVariadic | 10 |
enum BinaryStreamFlags
| Name | Value |
|---|---|
| BSF_None | 0 |
| BSF_Write | 1 |
| BSF_Append | 2 |
| LLVM_BITMASK_LARGEST_ENUMERATOR | BSF_Append |
enum VPExpansionDetails
| Name | Value |
|---|---|
| IntrinsicUnchanged | 0 |
| IntrinsicUpdated | 1 |
| IntrinsicReplaced | 2 |
enum VectorLibrary
| Name | Value |
|---|---|
| NoLibrary | 0 |
| Accelerate | 1 |
| DarwinLibSystemM | 2 |
| LIBMVEC | 3 |
| MASSV | 4 |
| SVML | 5 |
| SLEEFGNUABI | 6 |
| ArmPL | 7 |
| AMDLIBM | 8 |
enum KCFIHashAlgorithm
| Name | Value |
|---|---|
| xxHash64 | 0 |
| FNV1a | 1 |
enum CombinerObjective
| Name | Value |
|---|---|
| MustReduceDepth | 0 |
| MustReduceRegisterPressure | 1 |
| Default | 2 |
enum EmitDwarfUnwindType
| Name | Value |
|---|---|
| Always | 0 |
| NoCompactUnwind | 1 |
| Default | 2 |
enum cxxdump_error
| Name | Value |
|---|---|
| success | 0 |
| file_not_found | 1 |
| unrecognized_file_format | 2 |
enum EHPersonality
| Name | Value |
|---|---|
| Unknown | 0 |
| GNU_Ada | 1 |
| GNU_C | 2 |
| GNU_C_SjLj | 3 |
| GNU_CXX | 4 |
| GNU_CXX_SjLj | 5 |
| GNU_ObjC | 6 |
| MSVC_X86SEH | 7 |
| MSVC_TableSEH | 8 |
| MSVC_CXX | 9 |
| CoreCLR | 10 |
| Rust | 11 |
| Wasm_CXX | 12 |
| XL_CXX | 13 |
| ZOS_CXX | 14 |
enum IntrinsicType
| Name | Value |
|---|---|
| CVTNEPS2BF16_MASK | 0 |
| GATHER | 1 |
| SCATTER | 2 |
| PREFETCH | 3 |
| RDSEED | 4 |
| RDRAND | 5 |
| RDPMC | 6 |
| RDTSC | 7 |
| XTEST | 8 |
| XGETBV | 9 |
| ADX | 10 |
| FPCLASSS | 11 |
| INTR_TYPE_1OP | 12 |
| INTR_TYPE_2OP | 13 |
| INTR_TYPE_3OP | 14 |
| INTR_TYPE_4OP_IMM8 | 15 |
| INTR_TYPE_3OP_IMM8 | 16 |
| CFMA_OP_MASK | 17 |
| CFMA_OP_MASKZ | 18 |
| CMP_MASK_CC | 19 |
| CMP_MASK_SCALAR_CC | 20 |
| VSHIFT | 21 |
| COMI | 22 |
| COMI_RM | 23 |
| BLENDV | 24 |
| BEXTRI | 25 |
| CVTPD2PS_MASK | 26 |
| INTR_TYPE_1OP_SAE | 27 |
| INTR_TYPE_2OP_SAE | 28 |
| INTR_TYPE_1OP_MASK_SAE | 29 |
| INTR_TYPE_2OP_MASK_SAE | 30 |
| INTR_TYPE_3OP_MASK_SAE | 31 |
| INTR_TYPE_1OP_MASK | 32 |
| INTR_TYPE_2OP_MASK | 33 |
| IFMA_OP | 34 |
| VPERM_2OP | 35 |
| INTR_TYPE_SCALAR_MASK | 36 |
| INTR_TYPE_SCALAR_MASK_SAE | 37 |
| INTR_TYPE_SCALAR_MASK_RND | 38 |
| INTR_TYPE_3OP_SCALAR_MASK_SAE | 39 |
| COMPRESS_EXPAND_IN_REG | 40 |
| TRUNCATE_TO_REG | 41 |
| TRUNCATE2_TO_REG | 42 |
| CVTPS2PH_MASK | 43 |
| CVTPD2DQ_MASK | 44 |
| CVTQQ2PS_MASK | 45 |
| TRUNCATE_TO_MEM_VI8 | 46 |
| TRUNCATE_TO_MEM_VI16 | 47 |
| TRUNCATE_TO_MEM_VI32 | 48 |
| FIXUPIMM | 49 |
| FIXUPIMM_MASKZ | 50 |
| GATHER_AVX2 | 51 |
| ROUNDP | 52 |
| ROUNDS | 53 |
| RDPRU | 54 |
| INTR_TYPE_CAST_MMX | 55 |
enum HexPrintStyle
| Name | Value |
|---|---|
| Upper | 0 |
| Lower | 1 |
| PrefixUpper | 2 |
| PrefixLower | 3 |
enum
| Name | Value |
|---|---|
| kSanitizerStatKindBits | 3 |
enum AsanCtorKind
| Name | Value |
|---|---|
| None | 0 |
| Global | 1 |
enum PGOCtxProfileRecords
| Name | Value |
|---|---|
| Invalid | 0 |
| Version | 1 |
| Guid | 2 |
| CallsiteIndex | 3 |
| Counters | 4 |
| TotalRootEntryCount | 5 |
enum
| Name | Value |
|---|---|
| FirstLiteralRelocationKind | 2000 |
| FK_NONE | 4000 |
| FK_Data_1 | 4001 |
| FK_Data_2 | 4002 |
| FK_Data_4 | 4003 |
| FK_Data_8 | 4004 |
| FK_Data_leb128 | 4005 |
| FK_SecRel_1 | 4006 |
| FK_SecRel_2 | 4007 |
| FK_SecRel_4 | 4008 |
| FK_SecRel_8 | 4009 |
| FirstTargetFixupKind | 4010 |
enum SROAOptions
| Name | Value |
|---|---|
| ModifyCFG | 0 |
| PreserveCFG | 1 |
enum RunOutliner
| Name | Value |
|---|---|
| TargetDefault | 0 |
| AlwaysOutline | 1 |
| OptimisticPGO | 2 |
| ConservativePGO | 3 |
| NeverOutline | 4 |
enum AllocTokenMode
| Name | Value |
|---|---|
| Increment | 0 |
| Random | 1 |
| TypeHash | 2 |
| TypeHashPointerSplit | 3 |
enum DiffChange
| Name | Value |
|---|---|
| DC_match | 0 |
| DC_left | 1 |
| DC_right | 2 |
enum InterfaceInputOrder
| Name | Value |
|---|---|
| lhs | 0 |
| rhs | 1 |
enum Dwarf64StrOffsetsPromotion
| Name | Value |
|---|---|
| Disabled | 0 |
| Enabled | 1 |
| Always | 2 |
enum SubDirectoryType
| Name | Value |
|---|---|
| Bin | 0 |
| Include | 1 |
| Lib | 2 |
enum SanitizerStatKind
| Name | Value |
|---|---|
| SanStat_CFI_VCall | 0 |
| SanStat_CFI_NVCall | 1 |
| SanStat_CFI_DerivedCast | 2 |
| SanStat_CFI_UnrelatedCast | 3 |
| SanStat_CFI_ICall | 4 |
enum VariableID
| Name | Value |
|---|---|
| Reserved | 0 |
enum AMXProgModelEnum
| Name | Value |
|---|---|
| None | 0 |
| DirectReg | 1 |
| ManagedRA | 2 |
enum
| Name | Value |
|---|---|
| demangle_unknown_error | -4 |
| demangle_invalid_args | -3 |
| demangle_invalid_mangled_name | -2 |
| demangle_memory_alloc_failure | -1 |
| demangle_success | 0 |
enum BitstreamWrapperHeader
| Name | Value |
|---|---|
| BWH_MagicField | 0 * 4 |
| BWH_VersionField | 1 * 4 |
| BWH_OffsetField | 2 * 4 |
| BWH_SizeField | 3 * 4 |
| BWH_CPUTypeField | 4 * 4 |
| BWH_HeaderSize | 5 * 4 |
enum VFParamKind
| Name | Value |
|---|---|
| Vector | 0 |
| OMP_Linear | 1 |
| OMP_LinearRef | 2 |
| OMP_LinearVal | 3 |
| OMP_LinearUVal | 4 |
| OMP_LinearPos | 5 |
| OMP_LinearValPos | 6 |
| OMP_LinearRefPos | 7 |
| OMP_LinearUValPos | 8 |
| OMP_Uniform | 9 |
| GlobalPredicate | 10 |
| Unknown | 11 |
enum HTTPMethod
| Name | Value |
|---|---|
| GET | 0 |
enum HighlightColor
| Name | Value |
|---|---|
| Address | 0 |
| String | 1 |
| Tag | 2 |
| Attribute | 3 |
| Enumerator | 4 |
| Macro | 5 |
| Error | 6 |
| Warning | 7 |
| Note | 8 |
| Remark | 9 |
enum PseudoProbeReservedId
| Name | Value |
|---|---|
| Invalid | 0 |
| Last | Invalid |
enum
| Name | Value |
|---|---|
| SM_SentinelUndef | -1 |
| SM_SentinelZero | -2 |
enum InternalRelocationType
| Name | Value |
|---|---|
| INTERNAL_REL_ARM64_LONG_BRANCH26 | 0x111 |
enum DebugCompressionType
| Name | Value |
|---|---|
| None | 0 |
| Zlib | 1 |
| Zstd | 2 |
enum AtomicOrderingCABI
| Name | Value |
|---|---|
| relaxed | 0 |
| consume | 1 |
| acquire | 2 |
| release | 3 |
| acq_rel | 4 |
| seq_cst | 5 |
enum DiffAttrKind
| Name | Value |
|---|---|
| AD_Diff_Scalar_PackedVersion | 0 |
| AD_Diff_Scalar_Unsigned | 1 |
| AD_Diff_Scalar_Bool | 2 |
| AD_Diff_Scalar_Str | 3 |
| AD_Str_Vec | 4 |
| AD_Sym_Vec | 5 |
| AD_Inline_Doc | 6 |
enum MachineCombinerPattern
| Name | Value |
|---|---|
| REASSOC_AX_BY | 0 |
| REASSOC_AX_YB | 1 |
| REASSOC_XA_BY | 2 |
| REASSOC_XA_YB | 3 |
| ACC_CHAIN | 4 |
| TARGET_PATTERN_START | 5 |
enum ModRefInfo
| Name | Value |
|---|---|
| NoModRef | 0 |
| Ref | 1 |
| Mod | 2 |
| ModRef | Ref | Mod |
| LLVM_BITMASK_LARGEST_ENUMERATOR | ModRef |
enum AssumeBundleArg
| Name | Value |
|---|---|
| ABA_WasOn | 0 |
| ABA_Argument | 1 |
enum AsanDetectStackUseAfterReturnMode
| Name | Value |
|---|---|
| Never | 0 |
| Runtime | 1 |
| Always | 2 |
| Invalid | 3 |
enum ConvergenceKind
| Name | Value |
|---|---|
| None | 0 |
| Controlled | 1 |
| ExtendedLoop | 2 |
| Uncontrolled | 3 |
enum PseudoProbeType
| Name | Value |
|---|---|
| Block | 0 |
| IndirectCall | 1 |
| DirectCall | 2 |
enum X86MachineCombinerPattern
| Name | Value |
|---|---|
| DPWSSD | MachineCombinerPattern::TARGET_PATTERN_START |
enum CurStreamTypeType
| Name | Value |
|---|---|
| UnknownBitstream | 0 |
| LLVMIRBitstream | 1 |
| ClangSerializedASTBitstream | 2 |
| ClangSerializedDiagnosticsBitstream | 3 |
| LLVMBitstreamRemarks | 4 |
enum LibFunc
| Name | Value |
|---|
enum RegAllocType
| Name | Value |
|---|---|
| Unset | 0 |
| Default | 1 |
| Basic | 2 |
| Fast | 3 |
| Greedy | 4 |
| PBQP | 5 |
enum ToolsetLayout
| Name | Value |
|---|---|
| OlderVS | 0 |
| VS2017OrNewer | 1 |
| DevDivInternal | 2 |
enum SDTC
| Name | Value |
|---|---|
| SDTCisVT | 0 |
| SDTCisPtrTy | 1 |
| SDTCisInt | 2 |
| SDTCisFP | 3 |
| SDTCisVec | 4 |
| SDTCisSameAs | 5 |
| SDTCisVTSmallerThanOp | 6 |
| SDTCisOpSmallerThanOp | 7 |
| SDTCisEltOfVec | 8 |
| SDTCisSubVecOfVec | 9 |
| SDTCVecEltisVT | 10 |
| SDTCisSameNumEltsAs | 11 |
| SDTCisSameSizeAs | 12 |
enum PseudoProbeAttributes
| Name | Value |
|---|---|
| Reserved | 0x1 |
| Sentinel | 0x2 |
| HasDiscriminator | 0x4 |
enum PGOCtxProfileBlockIDs
| Name | Value |
|---|---|
| FIRST_VALID | bitc::FIRST_APPLICATION_BLOCKID |
| ProfileMetadataBlockID | FIRST_VALID |
| ContextsSectionBlockID | ProfileMetadataBlockID + 1 |
| ContextRootBlockID | ContextsSectionBlockID + 1 |
| ContextNodeBlockID | ContextRootBlockID + 1 |
| FlatProfilesSectionBlockID | ContextNodeBlockID + 1 |
| FlatProfileBlockID | FlatProfilesSectionBlockID + 1 |
| UnhandledBlockID | FlatProfileBlockID + 1 |
| LAST_VALID | UnhandledBlockID |
enum CGDataSectKind
| Name | Value |
|---|---|
| CG_outline | 0 |
| CG_merge | 1 |
enum CfiFunctionLinkage
| Name | Value |
|---|---|
| CFL_Definition | 0 |
| CFL_Declaration | 1 |
| CFL_WeakDeclaration | 2 |
enum PGOViewCountsType
| Name | Value |
|---|---|
| PGOVCT_None | 0 |
| PGOVCT_Graph | 1 |
| PGOVCT_Text | 2 |
enum VerifierKind
| Name | Value |
|---|---|
| None | 0 |
| InputOutput | 1 |
| EachPass | 2 |
enum MCLOHType
| Name | Value |
|---|---|
| MCLOH_AdrpAdrp | 0x1u |
| MCLOH_AdrpLdr | 0x2u |
| MCLOH_AdrpAddLdr | 0x3u |
| MCLOH_AdrpLdrGotLdr | 0x4u |
| MCLOH_AdrpAddStr | 0x5u |
| MCLOH_AdrpLdrGotStr | 0x6u |
| MCLOH_AdrpAdd | 0x7u |
| MCLOH_AdrpLdrGot | 0x8u |
enum RecurKind
| Name | Value |
|---|---|
| None | 0 |
| Add | 1 |
| Sub | 2 |
| AddChainWithSubs | 3 |
| Mul | 4 |
| Or | 5 |
| And | 6 |
| Xor | 7 |
| SMin | 8 |
| SMax | 9 |
| UMin | 10 |
| UMax | 11 |
| FAdd | 12 |
| FMul | 13 |
| FMin | 14 |
| FMax | 15 |
| FMinNum | 16 |
| FMaxNum | 17 |
| FMinimum | 18 |
| FMaximum | 19 |
| FMinimumNum | 20 |
| FMaximumNum | 21 |
| FMulAdd | 22 |
| AnyOf | 23 |
| FindFirstIVSMin | 24 |
| FindFirstIVUMin | 25 |
| FindLastIVSMax | 26 |
| FindLastIVUMax | 27 |
enum PGSOQueryType
| Name | Value |
|---|---|
| IRPass | 0 |
| Test | 1 |
| Other | 2 |
enum ComplexDeinterleavingOperation
| Name | Value |
|---|---|
| CAdd | 0 |
| CMulPartial | 1 |
| CDot | 2 |
| Deinterleave | 3 |
| Splat | 4 |
| Symmetric | 5 |
| ReductionPHI | 6 |
| ReductionOperation | 7 |
| ReductionSelect | 8 |
| ReductionSingle | 9 |
enum errc
| Name | Value |
|---|---|
| argument_list_too_long | int(std::errc::argument_list_too_long) |
| argument_out_of_domain | int(std::errc::argument_out_of_domain) |
| bad_address | int(std::errc::bad_address) |
| bad_file_descriptor | int(std::errc::bad_file_descriptor) |
| broken_pipe | int(std::errc::broken_pipe) |
| delete_pending | -56 |
| device_or_resource_busy | int(std::errc::device_or_resource_busy) |
| directory_not_empty | int(std::errc::directory_not_empty) |
| executable_format_error | int(std::errc::executable_format_error) |
| file_exists | int(std::errc::file_exists) |
| file_too_large | int(std::errc::file_too_large) |
| filename_too_long | int(std::errc::filename_too_long) |
| function_not_supported | int(std::errc::function_not_supported) |
| illegal_byte_sequence | int(std::errc::illegal_byte_sequence) |
| inappropriate_io_control_operation | int(std::errc::inappropriate_io_control_operation) |
| interrupted | int(std::errc::interrupted) |
| invalid_argument | int(std::errc::invalid_argument) |
| invalid_seek | int(std::errc::invalid_seek) |
| io_error | int(std::errc::io_error) |
| is_a_directory | int(std::errc::is_a_directory) |
| no_child_process | int(std::errc::no_child_process) |
| no_lock_available | int(std::errc::no_lock_available) |
| no_space_on_device | int(std::errc::no_space_on_device) |
| no_such_device_or_address | int(std::errc::no_such_device_or_address) |
| no_such_device | int(std::errc::no_such_device) |
| no_such_file_or_directory | int(std::errc::no_such_file_or_directory) |
| no_such_process | int(std::errc::no_such_process) |
| not_a_directory | int(std::errc::not_a_directory) |
| not_enough_memory | int(std::errc::not_enough_memory) |
| not_supported | int(std::errc::not_supported) |
| operation_not_permitted | int(std::errc::operation_not_permitted) |
| permission_denied | int(std::errc::permission_denied) |
| read_only_file_system | int(std::errc::read_only_file_system) |
| resource_deadlock_would_occur | int(std::errc::resource_deadlock_would_occur) |
| resource_unavailable_try_again | int(std::errc::resource_unavailable_try_again) |
| result_out_of_range | int(std::errc::result_out_of_range) |
| too_many_files_open_in_system | int(std::errc::too_many_files_open_in_system) |
| too_many_files_open | int(std::errc::too_many_files_open) |
| too_many_links | int(std::errc::too_many_links) |
enum AsmRewriteKind
| Name | Value |
|---|---|
| AOK_Align | 0 |
| AOK_EVEN | 1 |
| AOK_Emit | 2 |
| AOK_CallInput | 3 |
| AOK_Input | 4 |
| AOK_Output | 5 |
| AOK_SizeDirective | 6 |
| AOK_Label | 7 |
| AOK_EndOfStatement | 8 |
| AOK_Skip | 9 |
| AOK_IntelExpr | 10 |
enum RoundingMode
| Name | Value |
|---|---|
| TowardZero | 0 |
| NearestTiesToEven | 1 |
| TowardPositive | 2 |
| TowardNegative | 3 |
| NearestTiesToAway | 4 |
| Dynamic | 7 |
| Invalid | -1 |
enum SCEVTypes
| Name | Value |
|---|---|
| scConstant | 0 |
| scVScale | 1 |
| scTruncate | 2 |
| scZeroExtend | 3 |
| scSignExtend | 4 |
| scAddExpr | 5 |
| scMulExpr | 6 |
| scUDivExpr | 7 |
| scAddRecExpr | 8 |
| scUMaxExpr | 9 |
| scSMaxExpr | 10 |
| scUMinExpr | 11 |
| scSMinExpr | 12 |
| scSequentialUMinExpr | 13 |
| scPtrToInt | 14 |
| scUnknown | 15 |
| scCouldNotCompute | 16 |
enum
| Name | Value |
|---|---|
| DefaultMode | CodeGenHwModes::DefaultMode |
enum StatepointFlags
| Name | Value |
|---|---|
| None | 0 |
| GCTransition | 1 |
| DeoptLiveIn | 2 |
| MaskAll | 3 |
enum MSDemangleFlags
| Name | Value |
|---|---|
| MSDF_None | 0 |
| MSDF_DumpBackrefs | 1 << 0 |
| MSDF_NoAccessSpecifier | 1 << 1 |
| MSDF_NoCallingConvention | 1 << 2 |
| MSDF_NoReturnType | 1 << 3 |
| MSDF_NoMemberType | 1 << 4 |
| MSDF_NoVariableType | 1 << 5 |
enum ColorMode
| Name | Value |
|---|---|
| Auto | 0 |
| Enable | 1 |
| Disable | 2 |
enum CGDataKind
| Name | Value |
|---|---|
| Unknown | 0x0 |
| FunctionOutlinedHashTree | 0x1 |
| StableFunctionMergingMap | 0x2 |
| LLVM_BITMASK_LARGEST_ENUMERATOR | StableFunctionMergingMap |
enum InliningAdvisorMode
| Name | Value |
|---|---|
| Default | 0 |
| Release | 1 |
| Development | 2 |
enum UnitKind
| Name | Value |
|---|---|
| Skeleton | 0 |
| Full | 1 |
enum SymtabWritingMode
| Name | Value |
|---|---|
| NoSymtab | 0 |
| NormalSymtab | 1 |
| BigArchive32 | 2 |
| BigArchive64 | 3 |
enum VFISAKind
| Name | Value |
|---|---|
| AdvancedSIMD | 0 |
| SVE | 1 |
| RVV | 2 |
| SSE | 3 |
| AVX | 4 |
| AVX2 | 5 |
| AVX512 | 6 |
| LLVM | 7 |
| Unknown | 8 |
enum ReplacementType
| Name | Value |
|---|---|
| Format | 0 |
| Literal | 1 |
enum InlinePass
| Name | Value |
|---|---|
| AlwaysInliner | 0 |
| CGSCCInliner | 1 |
| EarlyInliner | 2 |
| ModuleInliner | 3 |
| MLInliner | 4 |
| ReplayCGSCCInliner | 5 |
| ReplaySampleProfileInliner | 6 |
| SampleProfileInliner | 7 |
enum SDNF
| Name | Value |
|---|---|
| SDNFIsStrictFP | 0 |
enum sampleprof_error
| Name | Value |
|---|---|
| success | 0 |
| bad_magic | 1 |
| unsupported_version | 2 |
| too_large | 3 |
| truncated | 4 |
| malformed | 5 |
| unrecognized_format | 6 |
| unsupported_writing_format | 7 |
| truncated_name_table | 8 |
| not_implemented | 9 |
| counter_overflow | 10 |
| ostream_seek_unsupported | 11 |
| uncompress_failed | 12 |
| zlib_unavailable | 13 |
| hash_mismatch | 14 |
| illegal_line_offset | 15 |
enum lostFraction
| Name | Value |
|---|---|
| lfExactlyZero | 0 |
| lfLessThanHalf | 1 |
| lfExactlyHalf | 2 |
| lfMoreThanHalf | 3 |
enum AllocFnKind
| Name | Value |
|---|---|
| Unknown | 0 |
| Alloc | 1 << 0 |
| Realloc | 1 << 1 |
| Free | 1 << 2 |
| Uninitialized | 1 << 3 |
| Zeroed | 1 << 4 |
| Aligned | 1 << 5 |
| LLVM_BITMASK_LARGEST_ENUMERATOR | Aligned |
enum LiveRangeStage
| Name | Value |
|---|---|
| RS_New | 0 |
| RS_Assign | 1 |
| RS_Split | 2 |
| RS_Split2 | 3 |
| RS_Spill | 4 |
| RS_Done | 5 |
enum LLVMConstants
| Name | Value |
|---|---|
| DEBUG_METADATA_VERSION | 3 |
enum WindowSchedulingFlag
| Name | Value |
|---|---|
| WS_Off | 0 |
| WS_On | 1 |
| WS_Force | 2 |
enum ExceptionHandling
| Name | Value |
|---|---|
| None | 0 |
| DwarfCFI | 1 |
| SjLj | 2 |
| ARM | 3 |
| WinEH | 4 |
| Wasm | 5 |
| AIX | 6 |
| ZOS | 7 |
enum DiagnosticSeverity
| Name | Value |
|---|---|
| DS_Error | 0 |
| DS_Warning | 1 |
| DS_Remark | 2 |
| DS_Note | 3 |
enum ComplexDeinterleavingRotation
| Name | Value |
|---|---|
| Rotation_0 | 0 |
| Rotation_90 | 1 |
| Rotation_180 | 2 |
| Rotation_270 | 3 |
enum PGOInstrumentationType
| Name | Value |
|---|---|
| Invalid | 0 |
| FDO | 1 |
| CSFDO | 2 |
| CTXPROF | 3 |
enum EmbeddingLevel
| Name | Value |
|---|---|
| InstructionLevel | 0 |
| BasicBlockLevel | 1 |
| FunctionLevel | 2 |
enum cgdata_error
| Name | Value |
|---|---|
| success | 0 |
| eof | 1 |
| bad_magic | 2 |
| bad_header | 3 |
| empty_cgdata | 4 |
| malformed | 5 |
| unsupported_version | 6 |
enum PassSummaryAction
| Name | Value |
|---|---|
| None | 0 |
| Import | 1 |
| Export | 2 |
enum TensorType
| Name | Value |
|---|---|
| Invalid | 0 |
| Float | 1 |
| Double | 2 |
| Int8 | 3 |
| UInt8 | 4 |
| Int16 | 5 |
| UInt16 | 6 |
| Int32 | 7 |
| UInt32 | 8 |
| Int64 | 9 |
| UInt64 | 10 |
| Total | 11 |
enum MCDataRegionType
| Name | Value |
|---|---|
| MCDR_DataRegion | 0 |
| MCDR_DataRegionJT8 | 1 |
| MCDR_DataRegionJT16 | 2 |
| MCDR_DataRegionJT32 | 3 |
| MCDR_DataRegionEnd | 4 |
enum
| Name | Value |
|---|---|
| GICXXPred_Invalid | 0 |
| GICXXCustomAction_Invalid | 0 |
enum MCRegUnit
| Name | Value |
|---|
enum PassManagerType
| Name | Value |
|---|---|
| PMT_Unknown | 0 |
| PMT_ModulePassManager | 1 |
| PMT_CallGraphPassManager | 2 |
| PMT_FunctionPassManager | 3 |
| PMT_LoopPassManager | 4 |
| PMT_RegionPassManager | 5 |
| PMT_Last | 6 |
enum AtomicOrdering
| Name | Value |
|---|---|
| NotAtomic | 0 |
| Unordered | 1 |
| Monotonic | 2 |
| Acquire | 4 |
| Release | 5 |
| AcquireRelease | 6 |
| SequentiallyConsistent | 7 |
| LAST | SequentiallyConsistent |
enum BasicBlockSection
| Name | Value |
|---|---|
| All | 0 |
| List | 1 |
| Preset | 2 |
| None | 3 |
enum DWARFSectionKind
| Name | Value |
|---|---|
| DW_SECT_EXT_unknown | 0 |
| DW_SECT_INFO | 1 |
| DW_SECT_ABBREV | 3 |
| DW_SECT_LINE | 4 |
| DW_SECT_LOCLISTS | 5 |
| DW_SECT_STR_OFFSETS | 6 |
| DW_SECT_MACRO | 7 |
| DW_SECT_RNGLISTS | 8 |
| DW_SECT_EXT_TYPES | 2 |
| DW_SECT_EXT_LOC | 9 |
| DW_SECT_EXT_MACINFO | 10 |
enum fltNonfiniteBehavior
| Name | Value |
|---|---|
| IEEE754 | 0 |
| NanOnly | 1 |
| FiniteOnly | 2 |
enum LoopUnrollResult
| Name | Value |
|---|---|
| Unmodified | 0 |
| PartiallyUnrolled | 1 |
| FullyUnrolled | 2 |
enum IRMemLocation
| Name | Value |
|---|---|
| ArgMem | 0 |
| InaccessibleMem | 1 |
| ErrnoMem | 2 |
| Other | 3 |
| TargetMem0 | 4 |
| TargetMem1 | 5 |
| First | ArgMem |
| FirstTarget | TargetMem0 |
| Last | TargetMem1 |
enum DiagnosticKind
| Name | Value |
|---|---|
| DK_Generic | 0 |
| DK_GenericWithLoc | 1 |
| DK_InlineAsm | 2 |
| DK_RegAllocFailure | 3 |
| DK_ResourceLimit | 4 |
| DK_StackSize | 5 |
| DK_Linker | 6 |
| DK_Lowering | 7 |
| DK_LegalizationFailure | 8 |
| DK_DebugMetadataVersion | 9 |
| DK_DebugMetadataInvalid | 10 |
| DK_Instrumentation | 11 |
| DK_ISelFallback | 12 |
| DK_SampleProfile | 13 |
| DK_OptimizationRemark | 14 |
| DK_OptimizationRemarkMissed | 15 |
| DK_OptimizationRemarkAnalysis | 16 |
| DK_OptimizationRemarkAnalysisFPCommute | 17 |
| DK_OptimizationRemarkAnalysisAliasing | 18 |
| DK_OptimizationFailure | 19 |
| DK_FirstRemark | DK_OptimizationRemark |
| DK_LastRemark | DK_OptimizationFailure |
| DK_MachineOptimizationRemark | 20 |
| DK_MachineOptimizationRemarkMissed | 21 |
| DK_MachineOptimizationRemarkAnalysis | 22 |
| DK_FirstMachineRemark | DK_MachineOptimizationRemark |
| DK_LastMachineRemark | DK_MachineOptimizationRemarkAnalysis |
| DK_MIRParser | 23 |
| DK_PGOProfile | 24 |
| DK_Unsupported | 25 |
| DK_SrcMgr | 26 |
| DK_DontCall | 27 |
| DK_MisExpect | 28 |
| DK_FirstPluginKind | 29 |
enum MCVersionMinType
| Name | Value |
|---|---|
| MCVM_IOSVersionMin | 0 |
| MCVM_OSXVersionMin | 1 |
| MCVM_TvOSVersionMin | 2 |
| MCVM_WatchOSVersionMin | 3 |
enum PassKind
| Name | Value |
|---|---|
| PT_Region | 0 |
| PT_Loop | 1 |
| PT_Function | 2 |
| PT_CallGraphSCC | 3 |
| PT_Module | 4 |
| PT_PassManager | 5 |
enum MIR2VecKind
| Name | Value |
|---|---|
| Symbolic | 0 |
enum PredicateType
| Name | Value |
|---|---|
| PT_Branch | 0 |
| PT_Assume | 1 |
| PT_Switch | 2 |
enum InlineCostFeatureIndex
| Name | Value |
|---|---|
| sroa_savings | 0 |
| sroa_losses | 1 |
| load_elimination | 2 |
| call_penalty | 3 |
| call_argument_setup | 4 |
| load_relative_intrinsic | 5 |
| lowered_call_arg_setup | 6 |
| indirect_call_penalty | 7 |
| jump_table_penalty | 8 |
| case_cluster_penalty | 9 |
| switch_default_dest_penalty | 10 |
| switch_penalty | 11 |
| unsimplified_common_instructions | 12 |
| num_loops | 13 |
| dead_blocks | 14 |
| simplified_instructions | 15 |
| constant_args | 16 |
| constant_offset_ptr_args | 17 |
| callsite_cost | 18 |
| cold_cc_penalty | 19 |
| last_call_to_static_bonus | 20 |
| is_multiple_blocks | 21 |
| nested_inlines | 22 |
| nested_inline_cost_estimate | 23 |
| threshold | 24 |
| NumberOfFeatures | 25 |
enum IR2VecKind
| Name | Value |
|---|---|
| Symbolic | 0 |
| FlowAware | 1 |
enum endianness
| Name | Value |
|---|---|
| big | 0 |
| little | 1 |
| native | little |
enum LocalNum
| Name | Value |
|---|---|
| LN_First | 0 |
| LN_Middle | 1 |
| LN_Last | 2 |
enum EABI
| Name | Value |
|---|---|
| Unknown | 0 |
| Default | 1 |
| EABI4 | 2 |
| EABI5 | 3 |
| GNU | 4 |
enum TextEncoding
| Name | Value |
|---|---|
| UTF8 | 0 |
| IBM1047 | 1 |
enum RemapFlags
| Name | Value |
|---|---|
| RF_None | 0 |
| RF_NoModuleLevelChanges | 1 |
| RF_IgnoreMissingLocals | 2 |
| RF_ReuseAndMutateDistinctMDs | 4 |
| RF_NullMapMissingGlobalValues | 8 |
| RF_DoNotRemapAtoms | 16 |
enum ThinOrFullLTOPhase
| Name | Value |
|---|---|
| None | 0 |
| ThinLTOPreLink | 1 |
| ThinLTOPostLink | 2 |
| FullLTOPreLink | 3 |
| FullLTOPostLink | 4 |
enum ClrHandlerType
| Name | Value |
|---|---|
| Catch | 0 |
| Finally | 1 |
| Fault | 2 |
| Filter | 3 |
enum MCPseudoProbeFlag
| Name | Value |
|---|---|
| AddressDelta | 0x1 |
enum DebuggerKind
| Name | Value |
|---|---|
| Default | 0 |
| GDB | 1 |
| LLDB | 2 |
| SCE | 3 |
| DBX | 4 |
enum fltNanEncoding
| Name | Value |
|---|---|
| IEEE | 0 |
| AllOnes | 1 |
| NegativeZero | 2 |
enum
| Name | Value |
|---|---|
| GIM_Try | 0 |
| GIM_SwitchOpcode | 1 |
| GIM_SwitchType | 2 |
| GIM_RecordInsn | 3 |
| GIM_RecordInsnIgnoreCopies | 4 |
| GIM_CheckFeatures | 5 |
| GIM_CheckOpcode | 6 |
| GIM_CheckOpcodeIsEither | 7 |
| GIM_CheckNumOperands | 8 |
| GIM_CheckNumOperandsLE | 9 |
| GIM_CheckNumOperandsGE | 10 |
| GIM_CheckI64ImmPredicate | 11 |
| GIM_CheckAPIntImmPredicate | 12 |
| GIM_CheckAPFloatImmPredicate | 13 |
| GIM_CheckImmOperandPredicate | 14 |
| GIM_CheckLeafOperandPredicate | 15 |
| GIM_CheckAtomicOrdering | 16 |
| GIM_CheckAtomicOrderingOrStrongerThan | 17 |
| GIM_CheckAtomicOrderingWeakerThan | 18 |
| GIM_CheckMemorySizeEqualTo | 19 |
| GIM_CheckMemoryAddressSpace | 20 |
| GIM_CheckMemoryAlignment | 21 |
| GIM_CheckMemorySizeEqualToLLT | 22 |
| GIM_CheckMemorySizeLessThanLLT | 23 |
| GIM_CheckMemorySizeGreaterThanLLT | 24 |
| GIM_CheckIsBuildVectorAllOnes | 25 |
| GIM_CheckIsBuildVectorAllZeros | 26 |
| GIM_CheckSimplePredicate | 27 |
| GIM_CheckCxxInsnPredicate | 28 |
| GIM_CheckHasNoUse | 29 |
| GIM_CheckHasOneUse | 30 |
| GIM_CheckType | 31 |
| GIM_RootCheckType | 32 |
| GIM_CheckPointerToAny | 33 |
| GIM_CheckRegBankForClass | 34 |
| GIM_RootCheckRegBankForClass | 35 |
| GIM_CheckComplexPattern | 36 |
| GIM_CheckConstantInt | 37 |
| GIM_CheckConstantInt8 | 38 |
| GIM_CheckLiteralInt | 39 |
| GIM_CheckIntrinsicID | 40 |
| GIM_CheckCmpPredicate | 41 |
| GIM_CheckIsMBB | 42 |
| GIM_CheckIsImm | 43 |
| GIM_CheckIsSafeToFold | 44 |
| GIM_CheckIsSameOperand | 45 |
| GIM_CheckIsSameOperandIgnoreCopies | 46 |
| GIM_CheckAllSameOperand | 47 |
| GIM_CheckAllSameOperandIgnoreCopies | 48 |
| GIM_CheckCanReplaceReg | 49 |
| GIM_MIFlags | 50 |
| GIM_MIFlagsNot | 51 |
| GIM_RecordNamedOperand | 52 |
| GIM_RecordRegType | 53 |
| GIM_Reject | 54 |
| GIR_MutateOpcode | 55 |
| GIR_BuildMI | 56 |
| GIR_BuildRootMI | 57 |
| GIR_BuildConstant | 58 |
| GIR_Copy | 59 |
| GIR_RootToRootCopy | 60 |
| GIR_CopyRemaining | 61 |
| GIR_CopyOrAddZeroReg | 62 |
| GIR_CopySubReg | 63 |
| GIR_AddImplicitDef | 64 |
| GIR_AddImplicitUse | 65 |
| GIR_AddRegister | 66 |
| GIR_AddIntrinsicID | 67 |
| GIR_SetImplicitDefDead | 68 |
| GIR_SetMIFlags | 69 |
| GIR_UnsetMIFlags | 70 |
| GIR_CopyMIFlags | 71 |
| GIR_AddTempRegister | 72 |
| GIR_AddSimpleTempRegister | 73 |
| GIR_AddTempSubRegister | 74 |
| GIR_AddImm | 75 |
| GIR_AddImm8 | 76 |
| GIR_AddCImm | 77 |
| GIR_ComplexRenderer | 78 |
| GIR_ComplexSubOperandRenderer | 79 |
| GIR_ComplexSubOperandSubRegRenderer | 80 |
| GIR_CustomRenderer | 81 |
| GIR_DoneWithCustomAction | 82 |
| GIR_CustomOperandRenderer | 83 |
| GIR_CopyConstantAsSImm | 84 |
| GIR_CopyFConstantAsFPImm | 85 |
| GIR_ConstrainOperandRC | 86 |
| GIR_ConstrainSelectedInstOperands | 87 |
| GIR_RootConstrainSelectedInstOperands | 88 |
| GIR_MergeMemOperands | 89 |
| GIR_EraseFromParent | 90 |
| GIR_EraseRootFromParent_Done | 91 |
| GIR_MakeTempReg | 92 |
| GIR_ReplaceReg | 93 |
| GIR_ReplaceRegWithTempReg | 94 |
| GIR_Done | 95 |
| GIR_Coverage | 96 |
| GIU_NumOpcodes | 97 |
enum CodeGenOptLevel
| Name | Value |
|---|---|
| None | 0 |
| Less | 1 |
| Default | 2 |
| Aggressive | 3 |
enum FeatureIDs
| Name | Value |
|---|---|
| li_size | 0 |
| stage | 1 |
| weight | 2 |
| FeatureCount | 3 |
enum TimeTraceEventType
| Name | Value |
|---|---|
| CompleteEvent | 0 |
| InstantEvent | 1 |
| AsyncEvent | 2 |
enum MachineTraceStrategy
| Name | Value |
|---|---|
| TS_MinInstrCount | 0 |
| TS_Local | 1 |
| TS_NumStrategies | 2 |
enum InstrProfSectKind
| Name | Value |
|---|---|
| IPSK_data | 0 |
| IPSK_cnts | 1 |
| IPSK_bitmap | 2 |
| IPSK_name | 3 |
| IPSK_vname | 4 |
| IPSK_vals | 5 |
| IPSK_vnodes | 6 |
| IPSK_vtab | 7 |
| IPSK_covmap | 8 |
| IPSK_covfun | 9 |
| IPSK_covdata | 10 |
| IPSK_covname | 11 |
| IPSK_covinit | 12 |
enum GlobalISelAbortMode
| Name | Value |
|---|---|
| Disable | 0 |
| Enable | 1 |
| DisableWithDiag | 2 |
enum MachineFunctionDataHotness
| Name | Value |
|---|---|
| Unknown | 0 |
| Cold | 1 |
| Hot | 2 |
enum PassDebuggingString
| Name | Value |
|---|---|
| EXECUTION_MSG | 0 |
| MODIFICATION_MSG | 1 |
| FREEING_MSG | 2 |
| ON_FUNCTION_MSG | 3 |
| ON_MODULE_MSG | 4 |
| ON_REGION_MSG | 5 |
| ON_LOOP_MSG | 6 |
| ON_CG_MSG | 7 |
enum SwiftAsyncFramePointerMode
| Name | Value |
|---|---|
| DeploymentBased | 0 |
| Always | 1 |
| Never | 2 |
enum IRKind
| Name | Value |
|---|---|
| LLVMIR | 0 |
| MIR | 1 |
enum InlinerFunctionImportStatsOpts
| Name | Value |
|---|---|
| No | 0 |
| Basic | 1 |
| Verbose | 2 |
enum CGDataMode
| Name | Value |
|---|---|
| None | 0 |
| Read | 1 |
| Write | 2 |
enum CodeObjectVersionKind
| Name | Value |
|---|---|
| COV_None | 0 |
| COV_2 | 200 |
| COV_3 | 300 |
| COV_4 | 400 |
| COV_5 | 500 |
| COV_6 | 600 |
enum CodeGenFileType
| Name | Value |
|---|---|
| AssemblyFile | 0 |
| ObjectFile | 1 |
| Null | 2 |
enum FramePointerKind
| Name | Value |
|---|---|
| None | 0 |
| NonLeaf | 1 |
| All | 2 |
| Reserved | 3 |
| NonLeafNoReserve | 4 |
enum
| Name | Value |
|---|---|
| INVALID_MEMORYACCESS_ID | -1U |
enum FeatureIndex
| Name | Value |
|---|---|
| sroa_savings | 0 |
| sroa_losses | 1 |
| load_elimination | 2 |
| call_penalty | 3 |
| call_argument_setup | 4 |
| load_relative_intrinsic | 5 |
| lowered_call_arg_setup | 6 |
| indirect_call_penalty | 7 |
| jump_table_penalty | 8 |
| case_cluster_penalty | 9 |
| switch_default_dest_penalty | 10 |
| switch_penalty | 11 |
| unsimplified_common_instructions | 12 |
| num_loops | 13 |
| dead_blocks | 14 |
| simplified_instructions | 15 |
| constant_args | 16 |
| constant_offset_ptr_args | 17 |
| callsite_cost | 18 |
| cold_cc_penalty | 19 |
| last_call_to_static_bonus | 20 |
| is_multiple_blocks | 21 |
| nested_inlines | 22 |
| nested_inline_cost_estimate | 23 |
| threshold | 24 |
| callee_basic_block_count | 25 |
| callsite_height | 26 |
| node_count | 27 |
| nr_ctant_params | 28 |
| cost_estimate | 29 |
| edge_count | 30 |
| caller_users | 31 |
| caller_conditionally_executed_blocks | 32 |
| caller_basic_block_count | 33 |
| callee_conditionally_executed_blocks | 34 |
| callee_users | 35 |
| is_callee_avail_external | 36 |
| is_caller_avail_external | 37 |
| callee_embedding | 38 |
| caller_embedding | 39 |
enum DINameKind
| Name | Value |
|---|---|
| None | 0 |
| ShortName | 1 |
| LinkageName | 2 |
enum ConversionResult
| Name | Value |
|---|---|
| conversionOK | 0 |
| sourceExhausted | 1 |
| targetExhausted | 2 |
| sourceIllegal | 3 |
enum UWTableKind
| Name | Value |
|---|---|
| None | 0 |
| Sync | 1 |
| Async | 2 |
| Default | 2 |
enum CloneFunctionChangeType
| Name | Value |
|---|---|
| LocalChangesOnly | 0 |
| GlobalChanges | 1 |
| DifferentModule | 2 |
| ClonedModule | 3 |
enum ConversionFlags
| Name | Value |
|---|---|
| strictConversion | 0 |
| lenientConversion | 1 |
enum
| Name | Value |
|---|---|
| InvalidVN | ~(uintptr_t)2 |
enum FunctionReturnThunksKind
| Name | Value |
|---|---|
| Keep | 0 |
| Extern | 1 |
| Invalid | 2 |
enum WinX64EHUnwindV2Mode
| Name | Value |
|---|---|
| Disabled | 0 |
| BestEffort | 1 |
| Required | 2 |
enum DIDumpTypeCounter
| Name | Value |
|---|---|
| DIDT_ID_DebugAbbrev | 0 |
| DIDT_ID_DebugAddr | 1 |
| DIDT_ID_DebugAranges | 2 |
| DIDT_ID_DebugInfo | 3 |
| DIDT_ID_DebugTypes | 4 |
| DIDT_ID_DebugLine | 5 |
| DIDT_ID_DebugLineStr | 6 |
| DIDT_ID_DebugLoc | 7 |
| DIDT_ID_DebugLoclists | 8 |
| DIDT_ID_DebugFrame | 9 |
| DIDT_ID_DebugMacro | 10 |
| DIDT_ID_DebugNames | 11 |
| DIDT_ID_DebugPubnames | 12 |
| DIDT_ID_DebugPubtypes | 13 |
| DIDT_ID_DebugGnuPubnames | 14 |
| DIDT_ID_DebugGnuPubtypes | 15 |
| DIDT_ID_DebugRanges | 16 |
| DIDT_ID_DebugRnglists | 17 |
| DIDT_ID_DebugStr | 18 |
| DIDT_ID_DebugStrOffsets | 19 |
| DIDT_ID_DebugCUIndex | 20 |
| DIDT_ID_DebugTUIndex | 21 |
| DIDT_ID_AppleNames | 22 |
| DIDT_ID_AppleTypes | 23 |
| DIDT_ID_AppleNamespaces | 24 |
| DIDT_ID_AppleObjC | 25 |
| DIDT_ID_GdbIndex | 26 |
| DIDT_ID_UUID | 27 |
| DIDT_ID_Count | 28 |
enum ExplorationDirection
| Name | Value |
|---|---|
| BACKWARD | 0 |
| FORWARD | 1 |
enum DIDumpType
| Name | Value |
|---|---|
| DIDT_Null | 0 |
| DIDT_All | ~0U |
| DIDT_DebugAbbrev | 1 |
| DIDT_DebugAddr | 2 |
| DIDT_DebugAranges | 4 |
| DIDT_DebugInfo | 8 |
| DIDT_DebugTypes | 16 |
| DIDT_DebugLine | 32 |
| DIDT_DebugLineStr | 64 |
| DIDT_DebugLoc | 128 |
| DIDT_DebugLoclists | 256 |
| DIDT_DebugFrame | 512 |
| DIDT_DebugMacro | 1024 |
| DIDT_DebugNames | 2048 |
| DIDT_DebugPubnames | 4096 |
| DIDT_DebugPubtypes | 8192 |
| DIDT_DebugGnuPubnames | 16384 |
| DIDT_DebugGnuPubtypes | 32768 |
| DIDT_DebugRanges | 65536 |
| DIDT_DebugRnglists | 131072 |
| DIDT_DebugStr | 262144 |
| DIDT_DebugStrOffsets | 524288 |
| DIDT_DebugCUIndex | 1048576 |
| DIDT_DebugTUIndex | 2097152 |
| DIDT_AppleNames | 4194304 |
| DIDT_AppleTypes | 8388608 |
| DIDT_AppleNamespaces | 16777216 |
| DIDT_AppleObjC | 33554432 |
| DIDT_GdbIndex | 67108864 |
| DIDT_UUID | 1 << DIDT_ID_UUID |
enum TailFoldingStyle
| Name | Value |
|---|---|
| None | 0 |
| Data | 1 |
| DataWithoutLaneMask | 2 |
| DataAndControlFlow | 3 |
| DataAndControlFlowWithoutRuntimeCheck | 4 |
| DataWithEVL | 5 |
enum LEB128Sign
| Name | Value |
|---|---|
| Unsigned | 0 |
| Signed | 1 |
enum FPClassTest
| Name | Value |
|---|---|
| fcNone | 0 |
| fcSNan | 0x0001 |
| fcQNan | 0x0002 |
| fcNegInf | 0x0004 |
| fcNegNormal | 0x0008 |
| fcNegSubnormal | 0x0010 |
| fcNegZero | 0x0020 |
| fcPosZero | 0x0040 |
| fcPosSubnormal | 0x0080 |
| fcPosNormal | 0x0100 |
| fcPosInf | 0x0200 |
| fcNan | fcSNan | fcQNan |
| fcInf | fcPosInf | fcNegInf |
| fcNormal | fcPosNormal | fcNegNormal |
| fcSubnormal | fcPosSubnormal | fcNegSubnormal |
| fcZero | fcPosZero | fcNegZero |
| fcPosFinite | fcPosNormal | fcPosSubnormal | fcPosZero |
| fcNegFinite | fcNegNormal | fcNegSubnormal | fcNegZero |
| fcFinite | fcPosFinite | fcNegFinite |
| fcPositive | fcPosFinite | fcPosInf |
| fcNegative | fcNegFinite | fcNegInf |
| fcAllFlags | fcNan | fcInf | fcFinite |
enum ThreadPriority
| Name | Value |
|---|---|
| Background | 0 |
| Low | 1 |
| Default | 2 |
enum TransformationMode
| Name | Value |
|---|---|
| TM_Unspecified | 0 |
| TM_Enable | 1 |
| TM_Disable | 2 |
| TM_Force | 0x04 |
| TM_ForcedByUser | TM_Enable | TM_Force |
| TM_SuppressedByUser | TM_Disable | TM_Force |
enum SetThreadPriorityResult
| Name | Value |
|---|---|
| FAILURE | 0 |
| SUCCESS | 1 |
enum ContextWorklistItemType
| Name | Value |
|---|---|
| AnalyzeContextInfo | 0 |
| UpdateChildPruning | 1 |
| UpdatePruning | 2 |
enum CaptureComponents
| Name | Value |
|---|---|
| None | 0 |
| AddressIsNull | (1 << 0) |
| Address | (1 << 1) | AddressIsNull |
| ReadProvenance | (1 << 2) |
| Provenance | (1 << 3) | ReadProvenance |
| All | Address | Provenance |
| LLVM_BITMASK_LARGEST_ENUMERATOR | Provenance |
enum InstrProfValueKind
| Name | Value |
|---|---|
| IPVK_IndirectCallTarget | 0 |
| IPVK_MemOPSize | 1 |
| IPVK_VTableTarget | 2 |
| IPVK_First | IPVK_IndirectCallTarget |
| IPVK_Last | IPVK_VTableTarget |
enum BitcodeError
| Name | Value |
|---|---|
| CorruptedBitcode | 1 |
enum AccelTableKind
| Name | Value |
|---|---|
| Default | 0 |
| None | 1 |
| Apple | 2 |
| Dwarf | 3 |
enum PrevailingType
| Name | Value |
|---|---|
| Yes | 0 |
| No | 1 |
| Unknown | 2 |
enum InstrProfKind
| Name | Value |
|---|---|
| Unknown | 0x0 |
| FrontendInstrumentation | 0x1 |
| IRInstrumentation | 0x2 |
| FunctionEntryInstrumentation | 0x4 |
| ContextSensitive | 0x8 |
| SingleByteCoverage | 0x10 |
| FunctionEntryOnly | 0x20 |
| MemProf | 0x40 |
| TemporalProfile | 0x80 |
| LoopEntriesInstrumentation | 0x100 |
| LLVM_BITMASK_LARGEST_ENUMERATOR | LoopEntriesInstrumentation |
enum AllocationType
| Name | Value |
|---|---|
| None | 0 |
| NotCold | 1 |
| Cold | 2 |
| Hot | 4 |
| All | 7 |
enum instrprof_error
| Name | Value |
|---|---|
| success | 0 |
| eof | 1 |
| unrecognized_format | 2 |
| bad_magic | 3 |
| bad_header | 4 |
| unsupported_version | 5 |
| unsupported_hash_type | 6 |
| too_large | 7 |
| truncated | 8 |
| malformed | 9 |
| missing_correlation_info | 10 |
| unexpected_correlation_info | 11 |
| unable_to_correlate_profile | 12 |
| unknown_function | 13 |
| invalid_prof | 14 |
| hash_mismatch | 15 |
| count_mismatch | 16 |
| bitmap_mismatch | 17 |
| counter_overflow | 18 |
| value_site_count_mismatch | 19 |
| compress_failed | 20 |
| uncompress_failed | 21 |
| empty_raw_profile | 22 |
| zlib_unavailable | 23 |
| raw_profile_version_mismatch | 24 |
| counter_value_too_large | 25 |
enum ChangeStatus
| Name | Value |
|---|---|
| CHANGED | 0 |
| UNCHANGED | 1 |
enum DepClassTy
| Name | Value |
|---|---|
| REQUIRED | 0 |
| OPTIONAL | 1 |
| NONE | 2 |
enum AccessField
| Name | Value |
|---|---|
| Offset | 0 |
| Length | 1 |
enum ReplaceExitVal
| Name | Value |
|---|---|
| NeverRepl | 0 |
| OnlyCheapRepl | 1 |
| NoHardUse | 2 |
| UnusedIndVarInLoop | 3 |
| AlwaysRepl | 4 |
enum OverflowResult
| Name | Value |
|---|---|
| AlwaysOverflowsLow | 0 |
| AlwaysOverflowsHigh | 1 |
| MayOverflow | 2 |
| NeverOverflows | 3 |
enum SelectPatternFlavor
| Name | Value |
|---|---|
| SPF_UNKNOWN | 0 |
| SPF_SMIN | 1 |
| SPF_UMIN | 2 |
| SPF_SMAX | 3 |
| SPF_UMAX | 4 |
| SPF_FMINNUM | 5 |
| SPF_FMAXNUM | 6 |
| SPF_ABS | 7 |
| SPF_NABS | 8 |
enum ScalarEpilogueLowering
| Name | Value |
|---|---|
| CM_ScalarEpilogueAllowed | 0 |
| CM_ScalarEpilogueNotAllowedOptSize | 1 |
| CM_ScalarEpilogueNotAllowedLowTripLoop | 2 |
| CM_ScalarEpilogueNotNeededUsePredicate | 3 |
| CM_ScalarEpilogueNotAllowedUsePredicate | 4 |
enum SelectPatternNaNBehavior
| Name | Value |
|---|---|
| SPNB_NA | 0 |
| SPNB_RETURNS_NAN | 1 |
| SPNB_RETURNS_OTHER | 2 |
| SPNB_RETURNS_ANY | 3 |
enum GVDAGType
| Name | Value |
|---|---|
| GVDT_None | 0 |
| GVDT_Fraction | 1 |
| GVDT_Integer | 2 |
| GVDT_Count | 3 |
enum AttributorRunOption
| Name | Value |
|---|---|
| NONE | 0 |
| MODULE | 1 << 0 |
| CGSCC | 1 << 1 |
| ALL | MODULE | CGSCC |
Inner Classes
-
class AAAddressSpace -
class AAAlign -
class AAAllocationInfo -
class AAAssumptionInfo -
class AACacheLoc -
class AACallEdgeIterator -
class AACallEdges -
class AACallGraphNode -
class AADenormalFPMath -
class AADepGraph -
class AADepGraphNode -
class AADereferenceable -
class AAEvaluator -
class AAExecutionDomain -
class AAGlobalValueInfo -
class AAHeapToStack -
class AAIndirectCallInfo -
class AAInstanceInfo -
class AAInterFnReachability -
class AAIntraFnReachability -
class AAInvariantLoadPointer -
class AAIsDead -
class AAMDNodes -
class AAManager -
class AAMemoryBehavior -
class AAMemoryLocation -
class AAMustProgress -
class AANoAlias -
class AANoAliasAddrSpace -
class AANoCapture -
class AANoFPClass -
class AANoFree -
class AANoRecurse -
class AANoReturn -
class AANoSync -
class AANoUndef -
class AANoUnwind -
class AANonConvergent -
class AANonNull -
class AAPointerInfo -
class AAPotentialConstantValues -
class AAPotentialValues -
class AAPrivatizablePtr -
class AAQueryInfo -
class AAResultBase -
class AAResults -
class AAResultsWrapperPass -
class AAUndefinedBehavior -
class AAUnderlyingObjects -
class AAValueConstantRange -
class AAValueSimplify -
class AAWillReturn -
class AArch64AttributeParser -
class AArch64BuildAttrSubsections -
class ADCEPass -
class AIXException -
class AMDGPUSelectionDAGTest -
class AMDGPUSelectionDAGTest_checkMetadata_Test -
class APByteStreamer -
class APFixedPoint -
class APFloat -
class APFloatBase -
class APInt -
class APSInt -
class ARMAttributeParser -
class ARMException -
class ARMJITSymbolFlags -
class ARMTargetStreamer -
class ASanAccessInfo -
class ASanStackFrameLayout -
class ASanStackVariableDescription -
class AShrOperator -
class AbstractAttribute -
class AbstractCallSite -
class AbstractDependenceGraphBuilder -
class AbstractDependenceGraphBuilder -
class AbstractInterpreter -
class AbstractLatticeFunction -
class AbstractSlotTrackerStorage -
class AbstractState -
class AccelTable -
class AccelTableBase -
class AccelTableData -
class AccessAsInstructionInfo -
class ActiveBlocksOption -
class AddDiscriminatorsPass -
class AddOperator -
class AdditionAOTModel -
class AddrLabelMap -
class AddrSpaceCastInst -
class AddrSpaceCastOperator -
class AddrSpaceCastSDNode -
class AddressPool -
class AddressProbesMap -
class AddressRange -
class AddressRangeValuePair -
class AddressRanges -
class AddressRangesBase -
class AddressRangesMap -
class AddressSanitizerOptions -
class AddressSanitizerPass -
class AdvisoryLock -
class AggregationData -
class AggressiveAntiDepBreaker -
class AggressiveAntiDepState -
class AggressiveInstCombinePass -
class AliasMatchingData -
class AliasPattern -
class AliasPatternCond -
class AliasResult -
class AliasScopeNode -
class AliasSet -
class AliasSetTracker -
class AliasSetsPrinterPass -
class AliasSummary -
class Align -
class AlignedCharArrayUnion -
class AlignmentFromAssumptionsPass -
class AllAnalysesOn -
class AllAnalysesOn -
class AllAnalysesOn -
class AllAnalysesOn -
class AllAnalysesOn -
class AllocInfo -
class AllocTokenMetadata -
class AllocTokenOptions -
class AllocTokenPass -
class AllocaHolder -
class AllocaInst -
class AllocaPackedValues -
class AllocationOrder -
class AllocatorBase -
class AllocatorList -
class AlwaysInlinerPass -
class AnalysisGetter -
class AnalysisInfoMixin -
class AnalysisKey -
class AnalysisManager -
class AnalysisManager -
class AnalysisManager -
class AnalysisManager -
class AnalysisManager -
class AnalysisManager -
class AnalysisResolver -
class AnalysisSetKey -
class AnalysisUsage -
class Annotation2MetadataPass -
class AnnotationRemarksPass -
class Annotations -
class AnonStructTypeKeyInfo -
class AnonymousNameInit -
class AntiDepBreaker -
class Any -
class AnyCoroEndInst -
class AnyCoroIdInst -
class AnyCoroIdRetconInst -
class AnyCoroSuspendInst -
class AnyMemCpyInst -
class AnyMemIntrinsic -
class AnyMemMoveInst -
class AnyMemSetInst -
class AnyMemTransferInst -
class AppendingBinaryByteStream -
class AppleAccelTableData -
class AppleAccelTableOffsetData -
class AppleAccelTableStaticOffsetData -
class AppleAccelTableStaticTypeData -
class AppleAccelTableTypeData -
class AppleAcceleratorTable -
class ArgInfo -
class Argument -
class ArgumentInit -
class ArgumentPromotionPass -
class ArrayRecycler -
class ArrayRef -
class ArrayType -
class AsmCommentConsumer -
class AsmCond -
class AsmFieldInfo -
class AsmLexer -
class AsmParserContext -
class AsmPrinter -
class AsmPrinterHandler -
class AsmRewrite -
class AsmToken -
class AsmTypeInfo -
class AsmWriterInst -
class AsmWriterOperand -
class AssemblerConstantPools -
class AssemblyAnnotationWriter -
class AssertAlignSDNode -
class AssertingVH -
class AssignGUIDPass -
class AssignmentTrackingAnalysis -
class AssignmentTrackingPass -
class AssumeBuilderPass -
class AssumeInst -
class AssumeSimplifyPass -
class AssumptionAnalysis -
class AssumptionCache -
class AssumptionCacheTracker -
class AssumptionPrinterPass -
class AtomicCmpXchgInst -
class AtomicExpandPass -
class AtomicInfo -
class AtomicRMWInst -
class AtomicSDNode -
class AttrBuilder -
class Attribute -
class AttributeBitSet -
class AttributeDiff -
class AttributeImpl -
class AttributeLinkedOffsetFixup -
class AttributeList -
class AttributeListImpl -
class AttributeMask -
class AttributeSet -
class AttributeSetNode -
class Attributor -
class AttributorCGSCCPass -
class AttributorCallGraph -
class AttributorConfig -
class AttributorLightCGSCCPass -
class AttributorLightPass -
class AttributorPass -
class AttributorTestBase -
class AttributorTestBase_AAReachabilityTest_Test -
class AttributorTestBase_IRPPositionCallBaseContext_Test -
class AttributorTestBase_TestCast_Test -
class AutoInitRemark -
class Automaton -
class AvailabilityPredicate -
class BBClusterInfo -
class BCDumpOptions -
class BDCEPass -
class BFIDOTGraphTraitsBase -
class BLAKE3 -
class BPFunctionNode -
class BPFunctionNodeTest_Basic_Test -
class BPIPassTrait -
class BPIPassTrait -
class BTFContext -
class BTFParser -
class BalancedPartitioning -
class BalancedPartitioningConfig -
class BalancedPartitioningTest -
class BalancedPartitioningTest_Basic_Test -
class BalancedPartitioningTest_Large_Test -
class BalancedPartitioningTest_MoveGain_Test -
class BaseIndexOffset -
class BaseRecord -
class BasicAA -
class BasicAAResult -
class BasicAAWrapperPass -
class BasicBlock -
class BasicBlockEdge -
class BasicBlockMatchingAndInference -
class BasicBlockSDNode -
class BasicBlockSectionsPass -
class BasicBlockSectionsProfileReader -
class BasicBlockSectionsProfileReaderAnalysis -
class BasicBlockSectionsProfileReaderPass -
class BasicBlockSectionsProfileReaderWrapperPass -
class BasicDIEUnit -
class BasicSubtargetFeatureKV -
class BasicSubtargetSubTypeKV -
class BasicTTIImpl -
class BasicTTIImplBase -
class BatchAAResults -
class BinOpInit -
class BinaryByteStream -
class BinaryConstantExpr -
class BinaryInstrProfCorrelator -
class BinaryItemStream -
class BinaryItemTraits -
class BinaryItemTraits -
class BinaryItemTraits -
class BinaryItemTraits -
class BinaryOpIntrinsic -
class BinaryOperation -
class BinaryOperator -
class BinaryStream -
class BinaryStreamError -
class BinaryStreamReader -
class BinaryStreamRef -
class BinaryStreamRefBase -
class BinaryStreamWriter -
class BinarySubstreamRef -
class BitCastInst -
class BitCastOperator -
class BitCodeAbbrev -
class BitCodeAbbrevOp -
class BitInit -
class BitIntegerState -
class BitMaskClassIterator -
class BitRecTy -
class BitVector -
class BitcodeAnalyzer -
class BitcodeFileContents -
class BitcodeLTOInfo -
class BitcodeModule -
class BitcodeReaderValueList -
class BitcodeWriter -
class BitcodeWriterPass -
class Bitfield -
class BitsInit -
class BitsRecTy -
class Bitset -
class BitstreamBlockInfo -
class BitstreamCursor -
class BitstreamEntry -
class BitstreamWriter -
class BlendedBlockHash -
class BlockAddress -
class BlockAddressSDNode -
class BlockCoverageInference -
class BlockDataT -
class BlockDataT -
class BlockExtractorPass -
class BlockFrequency -
class BlockFrequencyAnalysis -
class BlockFrequencyInfo -
class BlockFrequencyInfoImpl -
class BlockFrequencyInfoImplBase -
class BlockFrequencyInfoWrapperPass -
class BlockFrequencyPrinterPass -
class BlockToIndexMapping -
class BlotMapVector -
class BooleanState -
class BoundsCheckingPass -
class BranchCoverageInfo -
class BranchFolder -
class BranchFolderPass -
class BranchInst -
class BranchProbability -
class BranchProbabilityAnalysis -
class BranchProbabilityInfo -
class BranchProbabilityInfoWrapperPass -
class BranchProbabilityPrinterPass -
class BranchRelaxationPass -
class BranchView -
class BreadthFristIteratorTest_Basic_Test -
class BreadthFristIteratorTest_Cycle_Test -
class BreadthFristIteratorTest_MultiPassSafeWithInternalSet_Test -
class BreakCriticalEdgesPass -
class BreakFalseDepsPass -
class BrokenLink -
class BufferByteStreamer -
class BugDriver -
class BuildAttributeItem -
class BuildAttributeSubSection -
class BuildVectorSDNode -
class BumpPtrAllocatorImpl -
class ByteProvider -
class ByteStreamer -
class CC -
class CCState -
class CCValAssign -
class CFGAnalyses -
class CFGBuilder -
class CFGHolder -
class CFGMST -
class CFGOnlyPrinterPass -
class CFGOnlyViewerPass -
class CFGPrinterPass -
class CFGProfile -
class CFGSCCPrinterPass -
class CFGViewerPass -
class CFGuardLongjmpPass -
class CFGuardPass -
class CFIFixup -
class CFIFixupPass -
class CFIFunctionFrameAnalyzer -
class CFIFunctionFrameReceiver -
class CFIFunctionFrameStreamer -
class CFIInstrInserterPass -
class CGDataError -
class CGDataOStream -
class CGDataPatchItem -
class CGIOperandList -
class CGPassBuilderOption -
class CGPluginTests -
class CGProfilePass -
class CGSCCToFunctionPassAdaptor -
class CGSCCUpdateResult -
class CHIArg -
class CRCTable -
class CSEConfigBase -
class CSEConfigConstantOnly -
class CSEConfigFull -
class CSEMIRBuilder -
class CSKYAttributeParser -
class CacheCost -
class CachePruningPolicy -
class CachedFileStream -
class CachedHashString -
class CachedHashStringRef -
class CalculateSmallVectorDefaultInlinedElements -
class CallBase -
class CallBrInst -
class CallBrPreparePass -
class CallEntryPseudoSourceValue -
class CallGraph -
class CallGraphAnalysis -
class CallGraphDOTInfo -
class CallGraphDOTPrinterPass -
class CallGraphNode -
class CallGraphPrinterPass -
class CallGraphSCC -
class CallGraphSCCPass -
class CallGraphSCCsPrinterPass -
class CallGraphUpdater -
class CallGraphViewerPass -
class CallGraphWrapperPass -
class CallInfo -
class CallInst -
class CallLowering -
class CallSiteFormat -
class CallSiteSplittingPass -
class CallbackVH -
class CalledValuePropagationPass -
class CalleeInfo -
class CalleeSavedInfo -
class CallsiteInfo -
class CanonicalLoopInfo -
class CanonicalizeAliasesPass -
class CanonicalizeFreezeInLoopsPass -
class CaptureAnalysis -
class CaptureGlueInputMatcher -
class CaptureInfo -
class CaptureTracker -
class CastConstantExpr -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfo -
class CastInfoVPIRMetadata -
class CastInfoVPPhiAccessors -
class CastInst -
class CastIsPossible -
class CastIsPossible -
class CastIsPossible -
class CastIsPossible -
class CatchPadInst -
class CatchReturnInst -
class CatchSwitchInst -
class CfiFunctionIndex -
class ChangeReporter -
class ChangeReporter -
class ChangeReporter -
class CheckAllNode -
class CheckAndImmMatcher -
class CheckAnyNode -
class CheckChild2CondCodeMatcher -
class CheckChildIntegerMatcher -
class CheckChildSameMatcher -
class CheckChildTypeMatcher -
class CheckComplexPatMatcher -
class CheckCondCodeMatcher -
class CheckDebugMachineModulePass -
class CheckFieldNode -
class CheckFoldableChainNodeMatcher -
class CheckImmAllOnesVMatcher -
class CheckImmAllZerosVMatcher -
class CheckIntegerMatcher -
class CheckManyNode -
class CheckOpcodeMatcher -
class CheckOrImmMatcher -
class CheckPatternPredicateMatcher -
class CheckPredicateMatcher -
class CheckPredicateNode -
class CheckSameMatcher -
class CheckTypeMatcher -
class CheckValueTypeMatcher -
class Chunk -
class ClassInfo -
class Clause -
class CleanupInstaller -
class CleanupPadInst -
class CleanupReturnInst -
class ClonedCodeInfo -
class ClrEHUnwindMapEntry -
class CmpInst -
class CmpIntrinsic -
class CmpPredicate -
class CoalescerPair -
class CoalescingBitVector -
class CodeExpander -
class CodeExpansions -
class CodeExtractor -
class CodeExtractorAnalysisCache -
class CodeGenCoverage -
class CodeGenDAGPatterns -
class CodeGenData -
class CodeGenDataReader -
class CodeGenDataWriter -
class CodeGenHwModes -
class CodeGenInstAlias -
class CodeGenInstruction -
class CodeGenIntrinsic -
class CodeGenIntrinsicContext -
class CodeGenIntrinsicMap -
class CodeGenIntrinsicTable -
class CodeGenPassBuilder -
class CodeGenPreparePass -
class CodeGenProcModel -
class CodeGenRegBank -
class CodeGenRegister -
class CodeGenRegisterCategory -
class CodeGenRegisterClass -
class CodeGenRegisterCost -
class CodeGenRegisterFile -
class CodeGenSchedClass -
class CodeGenSchedModels -
class CodeGenSchedRW -
class CodeGenSchedTransition -
class CodeGenSubRegIndex -
class CodeGenTarget -
class CodeGenTargetMachineImpl -
class CodeMetrics -
class CodeViewContext -
class CodeViewDebug -
class CollectorMetadataAnalysis -
class ColoredRawOstream -
class CombinationGenerator -
class Combiner -
class CombinerHelper -
class CombinerInfo -
class Comdat -
class CommonPointerBase -
class CompSpillWeight -
class CompileUnitIdentifiers -
class CompleteMatchMatcher -
class ComplexDeinterleavingPass -
class ComplexPattern -
class ComposedAOTModel -
class ConcreteOperator -
class ConcurrentHashTableByPtr -
class ConcurrentHashTableInfoByPtr -
class CondCodeSDNode -
class CondContext -
class CondOpInit -
class ConnectedVNInfoEqClasses -
class ConstMIBundleOperands -
class ConstStrippingForwardingCast -
class Constant -
class ConstantAggrKeyType -
class ConstantAggregate -
class ConstantAggregateZero -
class ConstantArray -
class ConstantAsMetadata -
class ConstantData -
class ConstantDataArray -
class ConstantDataArraySlice -
class ConstantDataSequential -
class ConstantDataVector -
class ConstantExpr -
class ConstantExprKeyType -
class ConstantFP -
class ConstantFPRange -
class ConstantFPSDNode -
class ConstantFolder -
class ConstantHoistingPass -
class ConstantInfo -
class ConstantInfo -
class ConstantInfo -
class ConstantInfo -
class ConstantInfo -
class ConstantInfo -
class ConstantInfo -
class ConstantInt -
class ConstantMergePass -
class ConstantPointerNull -
class ConstantPool -
class ConstantPoolEntry -
class ConstantPoolSDNode -
class ConstantPtrAuth -
class ConstantPtrAuthKeyType -
class ConstantRange -
class ConstantRangeAttributeImpl -
class ConstantRangeList -
class ConstantRangeListAttributeImpl -
class ConstantSDNode -
class ConstantStruct -
class ConstantTargetNone -
class ConstantTokenNone -
class ConstantUniqueMap -
class ConstantVector -
class ConstrainedFPCmpIntrinsic -
class ConstrainedFPIntrinsic -
class ConstraintEliminationPass -
class ConstraintSystem -
class Consumer -
class ContextAndReplaceableUses -
class ContextTotalSize -
class ContextTrieNode -
class ContextWorklistItem -
class ContextualFoldingSet -
class ContextualFoldingSetTrait -
class ControlFlowHub -
class ControlHeightReductionPass -
class ConvergenceControlInst -
class ConvergingVLIWScheduler -
class CoroAlignInst -
class CoroAllocInst -
class CoroAllocaAllocInst -
class CoroAllocaFreeInst -
class CoroAllocaGetInst -
class CoroAnnotationElidePass -
class CoroAsyncContextAllocInst -
class CoroAsyncContextDeallocInst -
class CoroAsyncEndInst -
class CoroAsyncResumeInst -
class CoroAsyncSizeReplace -
class CoroAwaitSuspendInst -
class CoroBeginInst -
class CoroCleanupPass -
class CoroConditionalWrapper -
class CoroEarlyPass -
class CoroElidePass -
class CoroEndInst -
class CoroEndResults -
class CoroFrameInst -
class CoroFreeInst -
class CoroIdAsyncInst -
class CoroIdInst -
class CoroIdRetconInst -
class CoroIdRetconOnceInst -
class CoroIsInRampInst -
class CoroPromiseInst -
class CoroSaveInst -
class CoroSizeInst -
class CoroSplitPass -
class CoroSubFnInst -
class CoroSuspendAsyncInst -
class CoroSuspendInst -
class CoroSuspendRetconInst -
class CorrelatedValuePropagationPass -
class CostBenefitPair -
class CostModelPrinterPass -
class CostTblEntryT -
class CountCopyAndMove -
class CountSumOrPercent -
class CountVisitsPass -
class CountedSet -
class CoverageDataSummary -
class CoverageExporter -
class CoverageExporterJson -
class CoverageExporterLcov -
class CoverageFilter -
class CoverageFilters -
class CoverageFiltersMatchAll -
class CoveragePrinter -
class CoveragePrinterHTML -
class CoveragePrinterHTMLDirectory -
class CoveragePrinterText -
class CoveragePrinterTextDirectory -
class CoverageReport -
class CoverageViewOptions -
class CrashRecoveryContext -
class CrashRecoveryContextCleanup -
class CrashRecoveryContextCleanupBase -
class CrashRecoveryContextCleanupRegistrar -
class CrashRecoveryContextDeleteCleanup -
class CrashRecoveryContextDestructorCleanup -
class CrashRecoveryContextReleaseRefCleanup -
class CriticalAntiDepBreaker -
class CriticalEdgeSplittingOptions -
class CrossDSOCFIPass -
class CtxProfAnalysis -
class CtxProfAnalysisPrinterPass -
class CxxUnwindMapEntry -
class CycleAnalysis -
class CycleGraphTraits -
class CycleInfoPrinterPass -
class CycleInfoVerifierPass -
class CycleInfoWrapperPass -
class DAGDefaultOperand -
class DAGDeltaAlgorithm -
class DAGInstruction -
class DAGTypeLegalizer -
class DCData -
class DCEPass -
class DDGAnalysis -
class DDGAnalysisPrinterPass -
class DDGBuilder -
class DDGDotPrinterPass -
class DDGEdge -
class DDGNode -
class DFAJumpThreadingPass -
class DFAPacketizer -
class DFCalculateWorkObject -
class DGEdge -
class DGEdge -
class DGNode -
class DGNode -
class DGTestEdge -
class DGTestGraph -
class DGTestNode -
class DIArgList -
class DIArgListInfo -
class DIArgListKeyInfo -
class DIAssignID -
class DIBasicType -
class DIBuilder -
class DICommonBlock -
class DICompileUnit -
class DICompositeType -
class DIContext -
class DIDerivedType -
class DIDumpOptions -
class DIE -
class DIEAbbrev -
class DIEAbbrevData -
class DIEAbbrevSet -
class DIEAddrOffset -
class DIEBaseTypeRef -
class DIEBlock -
class DIEDelta -
class DIEDwarfExpression -
class DIEEntry -
class DIEExpr -
class DIEHash -
class DIEInlineString -
class DIEInteger -
class DIELabel -
class DIELoc -
class DIELocList -
class DIEString -
class DIEUnit -
class DIEValue -
class DIEValueList -
class DIEnumerator -
class DIExpression -
class DIExpressionCursor -
class DIFile -
class DIFixedPointType -
class DIGenericSubrange -
class DIGlobal -
class DIGlobalVariable -
class DIGlobalVariableExpression -
class DIImportedEntity -
class DIInliningInfo -
class DILabel -
class DILexicalBlock -
class DILexicalBlockBase -
class DILexicalBlockFile -
class DILineInfo -
class DILineInfoSpecifier -
class DILocal -
class DILocalScope -
class DILocalVariable -
class DILocation -
class DIMacro -
class DIMacroFile -
class DIMacroNode -
class DIModule -
class DINamespace -
class DINode -
class DIObjCProperty -
class DIScope -
class DISourceLanguageName -
class DIStringType -
class DISubprogram -
class DISubrange -
class DISubrangeType -
class DISubroutineType -
class DITemplateParameter -
class DITemplateTypeParameter -
class DITemplateValueParameter -
class DIType -
class DITypeRefArray -
class DIVariable -
class DOTFuncInfo -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraits -
class DOTGraphTraitsModulePrinterWrapperPass -
class DOTGraphTraitsModuleViewerWrapperPass -
class DOTGraphTraitsPrinter -
class DOTGraphTraitsPrinterWrapperPass -
class DOTGraphTraitsViewer -
class DOTGraphTraitsViewerWrapperPass -
class DOTMachineFuncInfo -
class DSEPass -
class DSOLocalEquivalent -
class DWARF5AccelTable -
class DWARF5AccelTableData -
class DWARFAbbreviationDeclaration -
class DWARFAbbreviationDeclarationSet -
class DWARFAcceleratorTable -
class DWARFAddressRange -
class DWARFAttribute -
class DWARFCFIAnalysis -
class DWARFCFIState -
class DWARFCompileUnit -
class DWARFContext -
class DWARFDataExtractor -
class DWARFDataExtractorBase -
class DWARFDataExtractorSimple -
class DWARFDebugAbbrev -
class DWARFDebugAddrTable -
class DWARFDebugArangeSet -
class DWARFDebugAranges -
class DWARFDebugFrame -
class DWARFDebugInfoEntry -
class DWARFDebugLine -
class DWARFDebugLoc -
class DWARFDebugLoclists -
class DWARFDebugMacro -
class DWARFDebugNames -
class DWARFDebugPubTable -
class DWARFDebugRangeList -
class DWARFDebugRnglist -
class DWARFDebugRnglistTable -
class DWARFDie -
class DWARFExpression -
class DWARFFormValue -
class DWARFGdbIndex -
class DWARFListEntryBase -
class DWARFListTableBase -
class DWARFListTableHeader -
class DWARFListType -
class DWARFLocationEntry -
class DWARFLocationExpression -
class DWARFLocationTable -
class DWARFObject -
class DWARFSection -
class DWARFTypePrinter -
class DWARFTypeUnit -
class DWARFUnit -
class DWARFUnitHeader -
class DWARFUnitIndex -
class DWARFUnitVector -
class DWARFVerifier -
class DWPError -
class DWPStringPool -
class DXContainerObjectWriter -
class DXILMetadataAnalysis -
class DXILMetadataAnalysisPrinterPass -
class DXILMetadataAnalysisWrapperPass -
class DXILResourceAnalysis -
class DXILResourceBindingAnalysis -
class DXILResourceBindingInfo -
class DXILResourceBindingWrapperPass -
class DXILResourceMap -
class DXILResourcePrinterPass -
class DXILResourceTypeAnalysis -
class DXILResourceTypeMap -
class DXILResourceTypeWrapperPass -
class DXILResourceWrapperPass -
class DXILUpgradePass -
class DagInit -
class DagRecTy -
class DataDependenceGraph -
class DataExtractor -
class DataFlowSanitizerPass -
class DataLayout -
class DbgAssignIntrinsic -
class DbgCallSiteParam -
class DbgDeclareInst -
class DbgEntity -
class DbgInfoIntrinsic -
class DbgLabel -
class DbgLabelInst -
class DbgLabelInstrMap -
class DbgLabelRecord -
class DbgMarker -
class DbgRangeEntry -
class DbgRecord -
class DbgRecordParamRef -
class DbgRecordParamRef -
class DbgRecordParamRef -
class DbgRecordParamRef -
class DbgSSABlock -
class DbgSSABlockPredIterator -
class DbgSSABlockSuccIterator -
class DbgSSAPhi -
class DbgValueDef -
class DbgValueHistoryMap -
class DbgValueInst -
class DbgValueLoc -
class DbgValueLocEntry -
class DbgValueRangeTable -
class DbgVariable -
class DbgVariableFragmentInfo -
class DbgVariableIntrinsic -
class DbgVariableLocation -
class DbgVariableRecord -
class DeactivationSymbolSDNode -
class DeadArgumentEliminationPass -
class DeadLaneDetector -
class DeadMachineInstructionElimPass -
class DebugAssignmentTrackingAnalysis -
class DebugAssignmentTrackingPrinterPass -
class DebugCounter -
class DebugEpochBase -
class DebugHandlerBase -
class DebugInfoDrop_DropOriginalDebugInfo_Test -
class DebugInfoDummyAnalysis_PreserveOriginalDebugInfo_Test -
class DebugInfoFinder -
class DebugInfoSize -
class DebugLoc -
class DebugLocDwarfExpression -
class DebugLocEntry -
class DebugLocStream -
class DebugNamesAbbrev -
class DebugSSAUpdater -
class DebugValueDrop_DropOriginalDebugValues_Test -
class DebugValueUser -
class DebugVariable -
class DebugVariableAggregate -
class DebugifyCustomPassManager -
class DebugifyEachInstrumentation -
class DebugifyMachineModule -
class DebuginfodCollection -
class DebuginfodFetcher -
class DebuginfodLog -
class DebuginfodLogEntry -
class DebuginfodServer -
class DecIntegerState -
class DeclareRuntimeLibcallsPass -
class DecodeNode -
class DecoderContext -
class DecoderTableEmitter -
class DecoderTableInfo -
class DecoderTreeNode -
class DecomposedBitTest -
class DefInit -
class DefaultAnalysisGraphTraits -
class DefaultContextualFoldingSetTrait -
class DefaultDOTGraphTraits -
class DefaultDoCastIfPossible -
class DefaultEvictionAdvisor -
class DefaultFoldingSetTrait -
class DefaultInlineAdvice -
class DefaultInlineAdvisor -
class DefaultPriorityAdvisor -
class DefaultVLIWScheduler -
class DefinitionAndSourceRegister -
class DefsetRecord -
class DelimitedScope -
class DelinearizationPrinterPass -
class DeltaAlgorithm -
class DeltaPass -
class DeltaTree -
class DemandedBits -
class DemandedBitsAnalysis -
class DemandedBitsPrinterPass -
class DemangleCache -
class DenormalFPMathState -
class DenormalMode -
class DenseMap -
class DenseMapBase -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapInfo -
class DenseMapIterator -
class DenseSet -
class Dependence -
class DependenceAnalysis -
class DependenceAnalysisPrinterPass -
class DependenceAnalysisWrapperPass -
class DependenceGraphInfo -
class DependenceGraphInfo -
class DependenceInfo -
class DepthFirstIteratorTest_ActuallyUpdateIterator_Test -
class DepthFirstIteratorTest_MultiPassSafeWithInternalSet_Test -
class DerefState -
class DerivedUser -
class DestSourcePair -
class DetectDeadLanesPass -
class DevirtCallSite -
class DevirtSCCRepeatedPass -
class DfaEmitter -
class DiagnosticHandler -
class DiagnosticInfo -
class DiagnosticInfoDebugMetadataVersion -
class DiagnosticInfoDontCall -
class DiagnosticInfoGeneric -
class DiagnosticInfoGenericWithLoc -
class DiagnosticInfoIROptimization -
class DiagnosticInfoISelFallback -
class DiagnosticInfoIgnoringInvalidDebugMetadata -
class DiagnosticInfoInlineAsm -
class DiagnosticInfoInstrumentation -
class DiagnosticInfoLegalizationFailure -
class DiagnosticInfoMIROptimization -
class DiagnosticInfoMIRParser -
class DiagnosticInfoMisExpect -
class DiagnosticInfoOptimizationBase -
class DiagnosticInfoOptimizationFailure -
class DiagnosticInfoPGOProfile -
class DiagnosticInfoRegAllocFailure -
class DiagnosticInfoResourceLimit -
class DiagnosticInfoSampleProfile -
class DiagnosticInfoSrcMgr -
class DiagnosticInfoStackSize -
class DiagnosticInfoUnsupported -
class DiagnosticInfoWithLocationBase -
class DiagnosticLocation -
class DiagnosticPredicate -
class DiagnosticPrinter -
class DiagnosticPrinterRawOStream -
class DictScope -
class DiffAOTModel -
class DiffConsumer -
class DiffEngine -
class DiffLogBuilder -
class DiffOutput -
class DiffScalarVal -
class DiffStrVec -
class DiffSymVec -
class DifferenceEngine -
class DirectedGraph -
class DirectedGraph -
class DirectedGraphTest_AddAndConnectNodes_Test -
class DirectedGraphTest_AddRemoveEdge_Test -
class DirectedGraphTest_AddRemoveNode_Test -
class DirectedGraphTest_SCC_Test -
class DirectedGraphTest_hasEdgeTo_Test -
class Directive -
class DirectiveLanguage -
class DirectoryCoverageReport -
class DisableLIRP -
class Disassembler -
class DiscardTemp -
class DistinctMDOperandPlaceholder -
class DivRemMapKey -
class DivRemPairsPass -
class DivergencePropagator -
class DoNothingMemorySSAWalker -
class DomConditionCache -
class DomOnlyPrinter -
class DomOnlyViewer -
class DomPrinter -
class DomTreeGraphTraitsBase -
class DomTreeNodeBase -
class DomTreeNodeBase -
class DomTreeNodeBase -
class DomTreeNodeTraits -
class DomTreeNodeTraits -
class DomTreeUpdater -
class DomViewer -
class DomainValue -
class DominanceFrontier -
class DominanceFrontierAnalysis -
class DominanceFrontierBase -
class DominanceFrontierBase -
class DominanceFrontierBase -
class DominanceFrontierBase -
class DominanceFrontierBase -
class DominanceFrontierPrinterPass -
class DominanceFrontierWrapperPass -
class DominatorTree -
class DominatorTreeAnalysis -
class DominatorTreeBase -
class DominatorTreeBase -
class DominatorTreeBase -
class DominatorTreeBase -
class DominatorTreeBase -
class DominatorTreePrinterPass -
class DominatorTreeVerifierPass -
class DominatorTreeWrapperPass -
class DotCfgChangeReporter -
class DotFuncBCIInfo -
class DropUnnecessaryAssumesPass -
class DroppedVariableStats -
class DroppedVariableStatsIR -
class DroppedVariableStatsMIR -
class DstOp -
class DummyCGSCCPass -
class DummyPriorityAdvisor -
class DummyStruct -
class Duration -
class DwarfCFIException -
class DwarfCompileUnit -
class DwarfDebug -
class DwarfEHPreparePass -
class DwarfExpression -
class DwarfFile -
class DwarfInstrProfCorrelator -
class DwarfStringPool -
class DwarfStringPoolEntry -
class DwarfStringPoolEntryRef -
class DwarfStringPoolEntryWithExtString -
class DwarfTypeUnit -
class DwarfUnit -
class DynamicAPInt -
class ECError -
class EHStreamer -
class ELFAttributeParser -
class ELFCompactAttrParser -
class ELFExtendedAttrParser -
class ELFObjectWriter -
class ELFRelocationEntry -
class EVT -
class EarliestEscapeAnalysis -
class EarlyCSEPass -
class EarlyIfConverterPass -
class EarlyMachineLICMPass -
class EarlyTailDuplicatePass -
class EdgeBundles -
class EdgeBundlesAnalysis -
class EdgeBundlesWrapperLegacy -
class ElementCount -
class EliminateAvailableExternallyPass -
class EmbedBitcodeOptions -
class EmbedBitcodePass -
class EmbeddedModelRunnerOptions -
class EmitConvertToTargetMatcher -
class EmitCopyToRegMatcher -
class EmitIntegerMatcher -
class EmitMergeInputChainsMatcher -
class EmitNodeMatcher -
class EmitNodeMatcherCommon -
class EmitNodeXFormMatcher -
class EmitRegisterMatcher -
class EmitStringIntegerMatcher -
class EmptyData -
class EmptyMatchContext -
class EmptyStringSetTag -
class EncodingField -
class EncodingInfoByHwMode -
class EncodingSegment -
class EngineBuilder -
class Ensemble -
class EntryExitInstrumenterPass -
class EntryValueInfo -
class EnumAttributeImpl -
class EnumEntry -
class EnumVal -
class EnumeratedArray -
class EnumeratedArray_InitAndIndex_Test -
class EnumeratedArray_Iterators_Test -
class EnumeratedArray_Size_Test -
class EphemeralValuesAnalysis -
class EphemeralValuesCache -
class EpilogueLoopVectorizationInfo -
class EpilogueVectorizerEpilogueLoop -
class EpilogueVectorizerMainLoop -
class EquivalenceClasses -
class EquivalenceClassesTest_CopyAssignemnt_Test -
class EquivalenceClassesTest_EraseKeepsLeaderBit_Test -
class EquivalenceClassesTest_MembersIterator_Test -
class EquivalenceClassesTest_NoMerges_Test -
class EquivalenceClassesTest_SimpleErase1_Test -
class EquivalenceClassesTest_SimpleErase2_Test -
class EquivalenceClassesTest_SimpleErase3_Test -
class EquivalenceClassesTest_SimpleErase4_Test -
class EquivalenceClassesTest_SimpleMerge1_Test -
class EquivalenceClassesTest_SimpleMerge2_Test -
class EquivalenceClassesTest_TwoSets_Test -
class Error -
class ErrorAsOutParameter -
class ErrorDiagnostic -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorHandlerTraits -
class ErrorInfo -
class ErrorInfoBase -
class ErrorList -
class ErrorOr -
class ErrorReported -
class ErrorSuccess -
class EscapeEnumerator -
class Evaluator -
class EvictionCost -
class ExecutionContext -
class ExecutionDomainFix -
class ExecutionEngine -
class ExecutionEngineState -
class ExistsOpInit -
class ExitOnError -
class ExpandIRInstsPass -
class ExpandMemCmpPass -
class ExpandPostRAPseudosPass -
class ExpandReductionsPass -
class ExpandVariadicsPass -
class ExpansionView -
class Expected -
class ExpectedAsOutParameter -
class ExponentialBackoff -
class ExportedSymbol -
class Expression -
class ExpressionAST -
class ExpressionFormat -
class ExpressionLiteral -
class ExtAddrMode -
class ExternalAAWrapperPass -
class ExternalSymbolPseudoSourceValue -
class ExternalSymbolSDNode -
class ExtraFunctionPassManager -
class ExtraLoopPassManager -
class ExtractElementConstantExpr -
class ExtractElementInst -
class ExtractGVPass -
class ExtractValueInst -
class FCmpInst -
class FEntryInserterPass -
class FMFSource -
class FPExtInst -
class FPMathOperator -
class FPPassManager -
class FPStateAccessSDNode -
class FPToSIInst -
class FPToUIInst -
class FPTruncInst -
class FPValueAndVReg -
class FailedMatcher -
class FailureOr -
class FastFoldingSetNode -
class FastISel -
class FastMathFlags -
class FatLtoCleanup -
class FaultMapParser -
class FaultMaps -
class FeatureBitArray -
class FeatureBitset -
class FenceInst -
class FieldInit -
class FileBufferByteStream -
class FileCache -
class FileCheck -
class FileCheckDiag -
class FileCheckPatternContext -
class FileCheckRequest -
class FileCheckString -
class FileCollector -
class FileCollectorBase -
class FileCollectorFileSystem -
class FileCoverageSummary -
class FileError -
class FileLoc -
class FileLocRange -
class FileOutputBuffer -
class FilePermissionsApplier -
class FileRemover -
class FinalizeBundleTestPass -
class FinalizeISelPass -
class FirstIndexOfType -
class FirstIndexOfType -
class FirstIndexOfType -
class FixIrreduciblePass -
class FixedNumOperandTraits -
class FixedPointSemantics -
class FixedScalableVFPair -
class FixedStackPseudoSourceValue -
class FixedStreamArray -
class FixedStreamArrayIterator -
class FixedVectorType -
class FixupStatepointCallerSavedPass -
class FlagEntry -
class FlatIt -
class FlattenCFGPass -
class Float2IntPass -
class FlowBlock -
class FlowFunction -
class FlowJump -
class FmtAlign -
class FoldOpInit -
class FoldingSet -
class FoldingSetBase -
class FoldingSetBucketIterator -
class FoldingSetBucketIteratorImpl -
class FoldingSetImpl -
class FoldingSetIterator -
class FoldingSetIteratorImpl -
class FoldingSetNodeID -
class FoldingSetNodeIDRef -
class FoldingSetNodeWrapper -
class FoldingSetTrait -
class FoldingSetTrait -
class FoldingSetTrait -
class FoldingSetTrait -
class FoldingSetTrait -
class FoldingSetTrait -
class FoldingSetVector -
class ForceFunctionAttrsPass -
class ForeachLoop -
class FormatAdapter -
class FormattedBytes -
class FormattedNumber -
class FormattedString -
class FortifiedLibCallSimplifier -
class ForwardDominanceFrontierBase -
class ForwardDominanceFrontierBase -
class ForwardDominanceFrontierBase -
class ForwardToPointerCast -
class ForwardedRegister -
class ForwardingMemoryManager -
class FrameIndexExpr -
class FrameIndexSDNode -
class FreeDeleter -
class FreeMachineFunctionPass -
class FreezeInst -
class FullDependence -
class FuncDataT -
class FuncDataT -
class FuncletLayoutPass -
class FuncletPadInst -
class Function -
class FunctionAnalysisManagerCGSCCProxy -
class FunctionAnalysisManagerMachineFunctionProxy -
class FunctionCallee -
class FunctionComparator -
class FunctionCoverageInfo -
class FunctionCoverageSummary -
class FunctionHashInfo -
class FunctionImportGlobalProcessing -
class FunctionImportPass -
class FunctionImporter -
class FunctionLoweringInfo -
class FunctionOptimizationProfile -
class FunctionPass -
class FunctionPointerLikeTypeTraits -
class FunctionPropertiesAnalysis -
class FunctionPropertiesInfo -
class FunctionPropertiesPrinterPass -
class FunctionPropertiesUpdater -
class FunctionSpecializationTest -
class FunctionSpecializer -
class FunctionSummary -
class FunctionToLoopPassAdaptor -
class FunctionToMachineFunctionPassAdaptor -
class FunctionType -
class FunctionTypeKeyInfo -
class FunctionVarLocs -
class GAdd -
class GAddCarryOut -
class GAddSubCarryInOut -
class GAddSubCarryOut -
class GAnd -
class GAnyCmp -
class GAnyExt -
class GAnyLoad -
class GBinOp -
class GBinOpCarryOut -
class GBuildVector -
class GBuildVectorTrunc -
class GCEmptyBasicBlocksPass -
class GCFunctionAnalysis -
class GCFunctionInfo -
class GCLoweringPass -
class GCMetadataPrinter -
class GCModuleInfo -
class GCOVArc -
class GCOVBlock -
class GCOVBlockLocation -
class GCOVBuffer -
class GCOVFile -
class GCOVFunction -
class GCOVOptions -
class GCOVProfilerPass -
class GCPoint -
class GCProjectionInst -
class GCRelocateInst -
class GCResultInst -
class GCRoot -
class GCStatepointInst -
class GCStrategy -
class GCStrategyMap -
class GCastOp -
class GConcatVectors -
class GEPNoWrapFlags -
class GEPOperator -
class GExtLoad -
class GExtOp -
class GExtOrTruncOp -
class GExtractSubvector -
class GExtractVectorElement -
class GFBinOp -
class GFCmp -
class GFConstant -
class GFreeze -
class GICmp -
class GIConstant -
class GIMatchTableExecutor -
class GISelCSEAnalysisWrapper -
class GISelCSEAnalysisWrapperPass -
class GISelCSEInfo -
class GISelChangeObserver -
class GISelInstProfileBuilder -
class GISelObserverWrapper -
class GISelValueTracking -
class GISelValueTrackingAnalysis -
class GISelValueTrackingAnalysisLegacy -
class GISelValueTrackingPrinterPass -
class GISelWorkList -
class GImplicitDef -
class GIndexedAnyExtLoad -
class GIndexedExtLoad -
class GIndexedLoad -
class GIndexedSExtLoad -
class GIndexedStore -
class GIndexedZExtLoad -
class GInsertSubvector -
class GInsertVectorElement -
class GIntBinOp -
class GIntrinsic -
class GLoad -
class GLoadStore -
class GLogicalBinOp -
class GMemOperation -
class GMerge -
class GMergeLikeInstr -
class GMul -
class GOFFObjectWriter -
class GOFFRelocationEntry -
class GOr -
class GPhi -
class GPtrAdd -
class GSExtLoad -
class GSUCmp -
class GSelect -
class GSext -
class GShl -
class GShuffleVector -
class GSplatVector -
class GStepVector -
class GStore -
class GSub -
class GSubCarryOut -
class GTrunc -
class GUIDProbeFunctionMap -
class GUnmerge -
class GVMaterializer -
class GVNHoist -
class GVNHoistPass -
class GVNOptions -
class GVNPass -
class GVNSinkPass -
class GVScale -
class GVecReduce -
class GZExtLoad -
class GZext -
class GenericConvergenceVerifier -
class GenericConvergenceVerifier -
class GenericConvergenceVerifier -
class GenericCycle -
class GenericCycle -
class GenericCycle -
class GenericCycleInfo -
class GenericCycleInfo -
class GenericCycleInfo -
class GenericCycleInfoCompute -
class GenericDINode -
class GenericDomTreeUpdater -
class GenericDomTreeUpdater -
class GenericDomTreeUpdater -
class GenericFloatingPointPredicateUtils -
class GenericMachineInstr -
class GenericSSAContext -
class GenericSSATraits -
class GenericSSATraits -
class GenericSSATraits -
class GenericScheduler -
class GenericSchedulerBase -
class GenericSyncDependenceAnalysis -
class GenericUniformityAnalysisImpl -
class GenericUniformityAnalysisImplDeleter -
class GenericUniformityAnalysisImplDeleter -
class GenericUniformityAnalysisImplDeleter -
class GenericUniformityInfo -
class GenericUniformityInfo -
class GenericUniformityInfo -
class GenericValue -
class GetElementPtrConstantExpr -
class GetElementPtrInst -
class GlobPattern -
class GlobalAddressSDNode -
class GlobalAlias -
class GlobalDCEPass -
class GlobalIFunc -
class GlobalISelMatchTableExecutorEmitter -
class GlobalMergeFunc -
class GlobalMergeFuncPass -
class GlobalMergeOptions -
class GlobalMergePass -
class GlobalNumberState -
class GlobalObject -
class GlobalOptPass -
class GlobalSplitPass -
class GlobalStatus -
class GlobalValue -
class GlobalValuePseudoSourceValue -
class GlobalValueSummary -
class GlobalValueSummaryInfo -
class GlobalVarSummary -
class GlobalVariable -
class GlobalsAA -
class GlobalsAAResult -
class GlobalsAAWrapperPass -
class Graph -
class GraphDiff -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphTraits -
class GraphWriter -
class GraphWriterBase -
class GuardWideningPass -
class HTTPClient -
class HTTPRequest -
class HTTPResponse -
class HTTPResponseHandler -
class HTTPServer -
class HTTPServerError -
class HTTPServerRequest -
class HWAddressSanitizerOptions -
class HWAddressSanitizerPass -
class HandleSDNode -
class HardwareLoopInfo -
class HardwareLoopOptions -
class HardwareLoopsPass -
class HasReferenceResolver -
class HashBuilder -
class HashBuilderBase -
class HashNode -
class HashNodeStable -
class HashRecognize -
class HashRecognizePrinterPass -
class HashingByteStreamer -
class HelloWorldPass -
class HexNumber -
class HexagonAttributeParser -
class HipStdParAcceleratorCodeSelectionPass -
class HipStdParAllocationInterpositionPass -
class HipStdParMathFixupPass -
class HistogramInfo -
class HotColdSplitting -
class HotColdSplittingPass -
class HungoffOperandTraits -
class HwMode -
class HwModeSelect -
class ICFLoopSafetyInfo -
class ICallPromotionAnalysis -
class ICmpInst -
class IDFCalculator -
class IDFCalculatorBase -
class ILPValue -
class IPSCCPOptions -
class IPSCCPPass -
class IR2VecPrinterPass -
class IR2VecVocabAnalysis -
class IR2VecVocabPrinterPass -
class IRAttribute -
class IRBuilder -
class IRBuilderBase -
class IRBuilderCallbackInserter -
class IRBuilderDefaultInserter -
class IRBuilderFolder -
class IRCEPass -
class IRChangedPrinter -
class IRChangedTester -
class IRComparer -
class IRComparer -
class IRDataT -
class IRDataT -
class IRMover -
class IRMutationStrategy -
class IRMutator -
class IRNormalizerOptions -
class IRNormalizerPass -
class IROutliner -
class IROutlinerPass -
class IRPosition -
class IRSimilarityAnalysis -
class IRSimilarityAnalysisPrinterPass -
class IRSimilarityIdentifierWrapperPass -
class IRTranslator -
class IRTranslatorPass -
class IVConditionInfo -
class IVStrideUse -
class IVUsers -
class IVUsersAnalysis -
class IVUsersPrinterPass -
class IVUsersWrapperPass -
class IVVisitor -
class IdentifyingPassPtr -
class IfDefEmitter -
class IfGuardEmitter -
class IllegalCast -
class ImmutableGraph -
class ImmutableGraphBuilder -
class ImmutableList -
class ImmutableListFactory -
class ImmutableListImpl -
class ImmutableMap -
class ImmutableMapRef -
class ImmutableModuleSummaryIndexWrapperPass -
class ImmutablePass -
class ImmutableSet -
class ImmutableSetRef -
class ImplicitControlFlowTracking -
class ImplicitNullChecksPass -
class ImportedFunctionsInliningStatistics -
class ImutAVLFactory -
class ImutAVLTree -
class ImutAVLTreeGenericIterator -
class ImutAVLTreeInOrderIterator -
class ImutAVLValueIterator -
class ImutContainerInfo -
class ImutContainerInfo -
class ImutIntervalAVLFactory -
class ImutKeyValueInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInfo -
class ImutProfileInteger -
class InLineChangePrinter -
class InProcessDeltaMapper -
class IncIntegerState -
class IncludeGuardEmitter -
class IndVarSimplifyPass -
class IndexListEntry -
class IndexedCodeGenDataReader -
class IndexedInstrProfReader -
class IndexedLoadStoreMatchInfo -
class IndexedMap -
class IndexedMemProfReader -
class IndexedReference -
class IndirectBrExpandPass -
class IndirectBrInst -
class InductionDescriptor -
class InferAddressSpacesPass -
class InferAlignmentPass -
class InferFunctionAttrsPass -
class InfoByHwMode -
class InfoSectionUnitHeader -
class InformationCache -
class Init -
class InitLLVM -
class InitUndefPass -
class InjectTLIMappings -
class InjectorIRStrategy -
class InlineAdvice -
class InlineAdvisor -
class InlineAdvisorAnalysis -
class InlineAdvisorAnalysisPrinterPass -
class InlineAsm -
class InlineAsmIdentifierInfo -
class InlineAsmKeyType -
class InlineAsmLowering -
class InlineContext -
class InlineCost -
class InlineCostAnnotationPrinterPass -
class InlineDoc -
class InlineFunctionInfo -
class InlineOrder -
class InlineParams -
class InlineResult -
class InlineSiteHash -
class InlinerPass -
class InnerAnalysisManagerProxy -
class InnerAnalysisManagerProxy -
class InnerAnalysisManagerProxy -
class InnerAnalysisManagerProxy -
class InnerAnalysisManagerProxy -
class InnerAnalysisManagerProxy -
class InnerLoopAndEpilogueVectorizer -
class InnerLoopVectorizer -
class InsertCFGStrategy -
class InsertElementConstantExpr -
class InsertElementInst -
class InsertFunctionStrategy -
class InsertPHIStrategy -
class InsertPointAnalysis -
class InsertPosition -
class InsertValueInst -
class InsnInfo -
class InstCombineOptions -
class InstCombinePass -
class InstCombiner -
class InstCombinerImpl -
class InstCostVisitor -
class InstCountPass -
class InstDeleterIRStrategy -
class InstIterator -
class InstModificationIRStrategy -
class InstSimplifyFolder -
class InstSimplifyPass -
class InstVisitor -
class InstancesOpInit -
class InstantiationView -
class InstrAspect -
class InstrEmitter -
class InstrInfoQuery -
class InstrItinerary -
class InstrItineraryData -
class InstrProfCallsite -
class InstrProfCntrInstBase -
class InstrProfCorrelator -
class InstrProfCorrelatorImpl -
class InstrProfCoverInst -
class InstrProfError -
class InstrProfIncrementInst -
class InstrProfIncrementInstStep -
class InstrProfInstBase -
class InstrProfIterator -
class InstrProfLookupTrait -
class InstrProfMCDCBitmapInstBase -
class InstrProfMCDCBitmapParameters -
class InstrProfMCDCTVBitmapUpdate -
class InstrProfOptions -
class InstrProfReader -
class InstrProfReaderIndex -
class InstrProfReaderIndexBase -
class InstrProfReaderItaniumRemapper -
class InstrProfReaderRemapper -
class InstrProfRecord -
class InstrProfRecordWriterTrait -
class InstrProfSummaryBuilder -
class InstrProfSymtab -
class InstrProfTimestampInst -
class InstrProfValueProfileInst -
class InstrProfValueSiteRecord -
class InstrProfWriter -
class InstrProfilingLoweringPass -
class InstrStage -
class Instruction -
class InstructionBuildSteps -
class InstructionCombiningPass -
class InstructionCost -
class InstructionEncoding -
class InstructionNamerPass -
class InstructionOrdering -
class InstructionPrecedenceTracking -
class InstructionSelect -
class InstructionSelectPass -
class InstructionSelector -
class InstructionStepsMatchInfo -
class InstructionWorklist -
class InstrumentationIRBuilder -
class IntAttributeImpl -
class IntEqClasses -
class IntInit -
class IntRecTy -
class IntToPtrInst -
class IntegerRangeState -
class IntegerStateBase -
class IntegerType -
class IntelExpr -
class IntelJITEventsWrapper -
class InteractiveModelRunner -
class InterceptRefCounted -
class InterestingMemoryOperand -
class InterferenceCache -
class InterleaveGroup -
class InterleavedAccessInfo -
class InterleavedAccessPass -
class InterleavedLoadCombinePass -
class InterleavedRange -
class InternalizePass -
class Interpreter -
class IntervalData -
class IntervalMap -
class IntervalMapHalfOpenInfo -
class IntervalMapInfo -
class IntervalMapInfo -
class IntervalMapOverlaps -
class IntervalPressure -
class IntervalTree -
class IntrinsicCostAttributes -
class IntrinsicData -
class IntrinsicInst -
class IntrinsicLowering -
class IntrusiveBackList -
class IntrusiveBackListBase -
class IntrusiveBackListNode -
class IntrusiveRefCntPtr -
class IntrusiveRefCntPtrInfo -
class IntrusiveRefCntPtrInfo -
class IntrusiveRefCntPtrInfo -
class IntrusiveRefCntPtrTest -
class IntrusiveRefCntPtrTest_InteropsWithUniquePtr_Test -
class IntrusiveRefCntPtrTest_MakeIntrusiveRefCnt_Test -
class IntrusiveRefCntPtrTest_RefCountedBaseCopyDoesNotLeak_Test -
class IntrusiveRefCntPtrTest_Unique_Test -
class IntrusiveRefCntPtr_InteropsWithConvertible_Test -
class IntrusiveRefCntPtr_UsesTraitsToRetainAndRelease_Test -
class InvalidateAllAnalysesPass -
class InvalidateAnalysisPass -
class Inverse -
class InvokeInst -
class IsAOpInit -
class ItaniumManglingCanonicalizer -
class ItaniumPartialDemangler -
class JITEvaluatedSymbol -
class JITEventListener -
class JITSymbol -
class JITSymbolFlags -
class JITSymbolResolver -
class JMCInstrumenterPass -
class JSONScopedPrinter -
class JamCRC -
class JobSlot -
class JobserverClient -
class JobserverClientImpl -
class JumpTableSDNode -
class JumpTableToSwitchPass -
class JumpThreadingPass -
class KCFIPass -
class KernelInfoPrinter -
class KnownAssumptionString -
class KnownBits -
class KnownFPClass -
class LCSSAPass -
class LCSSAVerificationPass -
class LICMOptions -
class LICMPass -
class LICMTest_TestSCEVInvalidationOnHoisting_Test -
class LLC -
class LLCDiagnosticHandler -
class LLLexer -
class LLParser -
class LLT -
class LLVMContext -
class LLVMContextImpl -
class LLVMDisasmContext -
class LLVMPassBuilderOptions -
class LLVMRemarkFileHandle -
class LLVMRemarkSetupErrorInfo -
class LLVMRemarkSetupFileError -
class LLVMRemarkSetupFormatError -
class LLVMRemarkSetupPatternError -
class LLVMRemarkStreamer -
class LLVMTargetMachineOptions -
class LNICMPass -
class LPMUpdater -
class LPPassManager -
class LRStartEndInfo -
class LSBaseSDNode -
class LShrOperator -
class LTOCodeGenerator -
class LTOModule -
class LabelSDNode -
class LandingPadInfo -
class LandingPadInst -
class LaneBitmask -
class LargeTestInteger -
class LastRunTrackingAnalysis -
class LastRunTrackingInfo -
class LatencyPriorityQueue -
class LatticeKeyInfo -
class LatticeKeyInfo -
class LatticeKeyInfo -
class LazyAtomicPointer -
class LazyBlockFrequencyInfo -
class LazyBlockFrequencyInfoPass -
class LazyBranchProbabilityInfoPass -
class LazyCallGraph -
class LazyCallGraphAnalysis -
class LazyCallGraphDOTPrinterPass -
class LazyCallGraphPrinterPass -
class LazyMachineBlockFrequencyInfoPass -
class LazyValueAnalysis -
class LazyValueInfo -
class LazyValueInfoImpl -
class LazyValueInfoPrinterPass -
class LazyValueInfoWrapperPass -
class LegacyDefaultAnalysisGraphTraits -
class LegacyJITSymbolResolver -
class LegacyLegalizeActionStep -
class LegacyLegalizerInfo -
class LegalityQuery -
class LegalizationArtifactCombiner -
class LegalizeActionStep -
class LegalizeRule -
class LegalizeRuleSet -
class Legalizer -
class LegalizerHelper -
class LegalizerInfo -
class LegalizerPass -
class LessRecord -
class LessRecordByID -
class LessRecordFieldFieldName -
class LessRecordFieldName -
class LessRecordRegister -
class LetRecord -
class LexicalScope -
class LexicalScopes -
class LibCallSimplifier -
class LibCallsShrinkWrapPass -
class LibcallLoweringInfo -
class LibcallLoweringInfoWrapper -
class LibcallLoweringModuleAnalysis -
class LibcallLoweringModuleAnalysisResult -
class LibcallPredicateExpander -
class LibcallsWithCC -
class LifetimeIntrinsic -
class LifetimeSDNode -
class LineCoverageFilter -
class LineCoverageInfo -
class LineEditor -
class LinearExpression -
class LinkDiagnosticInfo -
class Linker -
class LinkingSymbolResolver -
class LintPass -
class ListInit -
class ListRecTy -
class ListReducer -
class ListScope -
class ListSeparator -
class ListeningSocket -
class LiveDebugValuesPass -
class LiveDebugVariables -
class LiveDebugVariablesAnalysis -
class LiveDebugVariablesPrinterPass -
class LiveDebugVariablesWrapperLegacy -
class LiveInterval -
class LiveIntervalCalc -
class LiveIntervalUnion -
class LiveIntervals -
class LiveIntervalsAnalysis -
class LiveIntervalsPrinterPass -
class LiveIntervalsWrapperPass -
class LivePhysRegs -
class LiveQueryResult -
class LiveRange -
class LiveRangeCalc -
class LiveRangeEdit -
class LiveRangeShrinkPass -
class LiveRangeUpdater -
class LiveRegMatrix -
class LiveRegMatrixAnalysis -
class LiveRegMatrixWrapperLegacy -
class LiveRegSet -
class LiveRegUnit -
class LiveRegUnits -
class LiveStacks -
class LiveStacksAnalysis -
class LiveStacksPrinterPass -
class LiveStacksWrapperLegacy -
class LiveVariables -
class LiveVariablesAnalysis -
class LiveVariablesPrinterPass -
class LiveVariablesWrapperPass -
class LoadAndStorePromoter -
class LoadInfo -
class LoadInst -
class LoadSDNode -
class LoadStoreOpt -
class LoadStoreVectorizerPass -
class LoadedObjectInfo -
class LoadedObjectInfoHelper -
class LocalAsMetadata -
class LocalStackSlotAllocationPass -
class Localizer -
class LocationSize -
class LockFileManager -
class LockstepReverseIterator -
class LogBuilder -
class Logger -
class LogicalResult -
class Loop -
class LoopAccessAnalysis -
class LoopAccessInfo -
class LoopAccessInfoManager -
class LoopAccessInfoPrinterPass -
class LoopAnalysis -
class LoopBase -
class LoopBase -
class LoopBase -
class LoopBlocksDFS -
class LoopBlocksRPO -
class LoopBlocksTraversal -
class LoopBodyTraits -
class LoopBoundSplitPass -
class LoopCachePrinterPass -
class LoopCarriedEdges -
class LoopConstrainer -
class LoopDataPrefetchPass -
class LoopDeletionPass -
class LoopDistributePass -
class LoopExtractorPass -
class LoopFlattenPass -
class LoopFullUnrollPass -
class LoopFusePass -
class LoopIdiomRecognizePass -
class LoopIdiomVectorizePass -
class LoopInfo -
class LoopInfoBase -
class LoopInfoBase -
class LoopInfoBase -
class LoopInfoWrapperPass -
class LoopInstSimplifyPass -
class LoopInterchangePass -
class LoopLoadEliminationPass -
class LoopNest -
class LoopNestAnalysis -
class LoopNestPrinterPass -
class LoopPass -
class LoopPredicationPass -
class LoopPrinterPass -
class LoopRotatePass -
class LoopSafetyInfo -
class LoopSimplifyCFGPass -
class LoopSimplifyPass -
class LoopSinkPass -
class LoopStandardAnalysisResults -
class LoopStrengthReducePass -
class LoopStructure -
class LoopTermFoldPass -
class LoopTraversal -
class LoopUnrollAndJamPass -
class LoopUnrollOptions -
class LoopUnrollPass -
class LoopVectorizationCostModel -
class LoopVectorizationLegality -
class LoopVectorizationPlanner -
class LoopVectorizationRequirements -
class LoopVectorizeHints -
class LoopVectorizeOptions -
class LoopVectorizePass -
class LoopVectorizeResult -
class LoopVerifierPass -
class LoopVersioning -
class LoopVersioningLICMPass -
class LoopVersioningPass -
class LostDebugLocObserver -
class LowerAllowCheckPass -
class LowerAtomicPass -
class LowerConstantIntrinsicsPass -
class LowerEmuTLSPass -
class LowerExpectIntrinsicPass -
class LowerGlobalDtorsPass -
class LowerGuardIntrinsicPass -
class LowerIFuncPass -
class LowerInvokePass -
class LowerMatrixIntrinsicsPass -
class LowerSwitchPass -
class LowerTypeTestsPass -
class LowerWidenableConditionPass -
class LshrOfTruncOfLshr -
class MBB2NumberFunctor -
class MBBReachingDefsInfo -
class MBBSectionID -
class MBFIWrapper -
class MCAsmBackend -
class MCAsmInfo -
class MCAsmInfoCOFF -
class MCAsmInfoDarwin -
class MCAsmInfoELF -
class MCAsmInfoGNUCOFF -
class MCAsmInfoGOFF -
class MCAsmInfoMicrosoft -
class MCAsmInfoWasm -
class MCAsmInfoXCOFF -
class MCAsmMacro -
class MCAsmMacroParameter -
class MCAsmParser -
class MCAsmParserExtension -
class MCAsmParserSemaCallback -
class MCAssembler -
class MCBinaryExpr -
class MCBoundaryAlignFragment -
class MCCFIInstruction -
class MCCVDefRangeFragment -
class MCCVFunctionInfo -
class MCCVInlineLineTableFragment -
class MCCVLoc -
class MCCodeEmitter -
class MCConstantExpr -
class MCContext -
class MCDCCoverageInfo -
class MCDCView -
class MCDXContainerStreamer -
class MCDXContainerTargetWriter -
class MCDecodedPseudoProbe -
class MCDecodedPseudoProbeInlineTree -
class MCDisassembler -
class MCDwarfDwoLineTable -
class MCDwarfFile -
class MCDwarfFrameEmitter -
class MCDwarfFrameInfo -
class MCDwarfLineAddr -
class MCDwarfLineEntry -
class MCDwarfLineStr -
class MCDwarfLineTable -
class MCDwarfLineTableHeader -
class MCDwarfLineTableParams -
class MCDwarfLoc -
class MCELFObjectTargetWriter -
class MCELFStreamer -
class MCExpr -
class MCExternalSymbolizer -
class MCExtraProcessorInfo -
class MCFillFragment -
class MCFixup -
class MCFixupKindInfo -
class MCFragment -
class MCGOFFObjectTargetWriter -
class MCGOFFStreamer -
class MCGenDwarfInfo -
class MCGenDwarfLabelEntry -
class MCInst -
class MCInstBuilder -
class MCInstPrinter -
class MCInstrAnalysis -
class MCInstrDesc -
class MCInstrInfo -
class MCJIT -
class MCJITMemoryManager -
class MCJITTestAPICommon -
class MCJITTestBase -
class MCLOHContainer -
class MCLOHDirective -
class MCLabel -
class MCLineSection -
class MCMachObjectTargetWriter -
class MCNopsFragment -
class MCObjectFileInfo -
class MCObjectStreamer -
class MCObjectTargetWriter -
class MCObjectWriter -
class MCOperand -
class MCOperandInfo -
class MCOrgFragment -
class MCParsedAsmOperand -
class MCProcResourceDesc -
class MCPseudoProbe -
class MCPseudoProbeBase -
class MCPseudoProbeDecoder -
class MCPseudoProbeFuncDesc -
class MCPseudoProbeInlineTree -
class MCPseudoProbeInlineTreeBase -
class MCPseudoProbeSections -
class MCPseudoProbeTable -
class MCReadAdvanceEntry -
class MCRegAliasIterator -
class MCRegUnitIterator -
class MCRegUnitMaskIterator -
class MCRegUnitRootIterator -
class MCRegUnitToIndex -
class MCRegister -
class MCRegisterClass -
class MCRegisterCostEntry -
class MCRegisterDesc -
class MCRegisterFileDesc -
class MCRegisterInfo -
class MCRelocationInfo -
class MCSFrameEmitter -
class MCSPIRVObjectTargetWriter -
class MCSPIRVStreamer -
class MCSchedClassDesc -
class MCSchedModel -
class MCSection -
class MCSectionCOFF -
class MCSectionDXContainer -
class MCSectionELF -
class MCSectionGOFF -
class MCSectionMachO -
class MCSectionSPIRV -
class MCSectionWasm -
class MCSectionXCOFF -
class MCSpecifierExpr -
class MCStreamer -
class MCSubRegIndexIterator -
class MCSubRegIterator -
class MCSubtargetInfo -
class MCSuperRegIterator -
class MCSymbol -
class MCSymbolCOFF -
class MCSymbolELF -
class MCSymbolGOFF -
class MCSymbolIdFragment -
class MCSymbolMachO -
class MCSymbolRefExpr -
class MCSymbolSDNode -
class MCSymbolTableValue -
class MCSymbolWasm -
class MCSymbolXCOFF -
class MCSymbolizer -
class MCTargetAsmParser -
class MCTargetExpr -
class MCTargetOptions -
class MCTargetStreamer -
class MCUnaryExpr -
class MCValue -
class MCWasmObjectTargetWriter -
class MCWasmStreamer -
class MCWinCOFFObjectTargetWriter -
class MCWinCOFFStreamer -
class MCWriteLatencyEntry -
class MCWriteProcResEntry -
class MCXCOFFObjectTargetWriter -
class MCXCOFFStreamer -
class MD5 -
class MDAttachments -
class MDBuilder -
class MDNode -
class MDNodeInfo -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeKeyImpl -
class MDNodeOpsKey -
class MDNodeSDNode -
class MDNodeSubsetEqualImpl -
class MDNodeSubsetEqualImpl -
class MDNodeSubsetEqualImpl -
class MDOperand -
class MDProfLabels -
class MDString -
class MDTuple -
class MDTupleTypedArrayWrapper -
class MFPropsModifier -
class MIBInfo -
class MIBundleBuilder -
class MIBundleOperandIteratorBase -
class MIBundleOperands -
class MIMetadata -
class MIR2VecPrinterLegacyPass -
class MIR2VecVocabLegacyAnalysis -
class MIR2VecVocabPrinterLegacyPass -
class MIR2VecVocabProvider -
class MIRAddFSDiscriminators -
class MIRAddFSDiscriminatorsPass -
class MIRFormatter -
class MIRParser -
class MIRParserImpl -
class MIRProfileLoader -
class MIRProfileLoaderNewPass -
class MIRProfileLoaderPass -
class MIToken -
class MLInlineAdvice -
class MLInlineAdvisor -
class MLModelRunner -
class MLPriorityAdvisor -
class MMRAMetadata -
class MSP430AttributeParser -
class MSVCPError -
class MSVCPExpected -
class MVT -
class MachObjectWriter -
class MachineBasicBlock -
class MachineBlockFrequencyAnalysis -
class MachineBlockFrequencyInfo -
class MachineBlockFrequencyInfoWrapperPass -
class MachineBlockFrequencyPrinterPass -
class MachineBlockHashInfo -
class MachineBlockPlacementPass -
class MachineBlockPlacementStatsPass -
class MachineBranchProbabilityAnalysis -
class MachineBranchProbabilityInfo -
class MachineBranchProbabilityInfoWrapperPass -
class MachineBranchProbabilityPrinterPass -
class MachineCFGPrinter -
class MachineCSEPass -
class MachineCombinerPass -
class MachineConstantPool -
class MachineConstantPoolEntry -
class MachineConstantPoolValue -
class MachineCopyPropagationPass -
class MachineCycleAnalysis -
class MachineCycleInfoPrinterPass -
class MachineCycleInfoWrapperPass -
class MachineDomTreeGraphTraitsBase -
class MachineDomTreeUpdater -
class MachineDominanceFrontier -
class MachineDominatorTree -
class MachineDominatorTreeAnalysis -
class MachineDominatorTreePrinterPass -
class MachineDominatorTreeWrapperPass -
class MachineFrameInfo -
class MachineFunction -
class MachineFunctionAnalysis -
class MachineFunctionInfo -
class MachineFunctionPass -
class MachineFunctionPrinterPass -
class MachineFunctionProperties -
class MachineFunctionSplitterPass -
class MachineIRBuilder -
class MachineIRBuilderState -
class MachineInstr -
class MachineInstrBuilder -
class MachineInstrBundleIterator -
class MachineInstrBundleIteratorHelper -
class MachineInstrBundleIteratorHelper -
class MachineInstrBundleIteratorHelper -
class MachineInstrBundleIteratorTraits -
class MachineInstrBundleIteratorTraits -
class MachineInstrBundleIteratorTraits -
class MachineInstrBundleIteratorTraits -
class MachineInstrBundleIteratorTraits -
class MachineInstrExpressionTrait -
class MachineInstrSpan -
class MachineJumpTableEntry -
class MachineJumpTableInfo -
class MachineKCFIPass -
class MachineLICMBasePass -
class MachineLICMBasePass -
class MachineLICMBasePass -
class MachineLICMPass -
class MachineLateInstrsCleanupPass -
class MachineLocation -
class MachineLoop -
class MachineLoopAnalysis -
class MachineLoopInfo -
class MachineLoopInfoWrapperPass -
class MachineLoopPrinterPass -
class MachineMemOperand -
class MachineModuleAnalysis -
class MachineModuleInfo -
class MachineModuleInfoCOFF -
class MachineModuleInfoELF -
class MachineModuleInfoImpl -
class MachineModuleInfoMachO -
class MachineModuleInfoWasm -
class MachineModuleInfoWrapperPass -
class MachineModuleSlotTracker -
class MachineOperand -
class MachineOptimizationRemark -
class MachineOptimizationRemarkAnalysis -
class MachineOptimizationRemarkEmitter -
class MachineOptimizationRemarkEmitterAnalysis -
class MachineOptimizationRemarkEmitterPass -
class MachineOptimizationRemarkMissed -
class MachineOutlinerPass -
class MachinePassRegistry -
class MachinePassRegistryListener -
class MachinePassRegistryNode -
class MachinePipeliner -
class MachinePointerInfo -
class MachinePostDominatorTree -
class MachinePostDominatorTreeAnalysis -
class MachinePostDominatorTreePrinterPass -
class MachinePostDominatorTreeWrapperPass -
class MachineRegion -
class MachineRegionInfo -
class MachineRegionInfoPass -
class MachineRegionNode -
class MachineRegisterInfo -
class MachineSDNode -
class MachineSSAUpdater -
class MachineSanitizerBinaryMetadataPass -
class MachineSchedContext -
class MachineSchedPolicy -
class MachineSchedRegistry -
class MachineSchedStrategy -
class MachineSchedulerPass -
class MachineSinkingPass -
class MachineTraceMetrics -
class MachineTraceMetricsAnalysis -
class MachineTraceMetricsVerifierPass -
class MachineTraceMetricsWrapperPass -
class MachineUniformityAnalysis -
class MachineUniformityAnalysisPass -
class MachineUniformityPrinterPass -
class MachineValueTypeSet -
class MachineVerifierPass -
class MakeGuardsExplicitPass -
class MallocAllocator -
class ManagedStatic -
class ManagedStaticBase -
class Mangler -
class MapResolver -
class MapVector -
class MaskRolPair -
class MaskedGatherSDNode -
class MaskedGatherScatterSDNode -
class MaskedHistogramSDNode -
class MaskedLoadSDNode -
class MaskedLoadStoreSDNode -
class MaskedScatterSDNode -
class MaskedStoreSDNode -
class Matcher -
class MatrixBuilder -
class MaybeAlign -
class MemCpyInst -
class MemCpyOptPass -
class MemDepResult -
class MemDerefPrinterPass -
class MemIntrinsic -
class MemIntrinsicBase -
class MemIntrinsicCostAttributes -
class MemIntrinsicInfo -
class MemIntrinsicSDNode -
class MemMoveInst -
class MemOp -
class MemProfContextDisambiguation -
class MemProfRemoveInfo -
class MemProfUsePass -
class MemProfilerPass -
class MemSDNode -
class MemSetBase -
class MemSetInst -
class MemSetPatternInst -
class MemTransferBase -
class MemTransferInst -
class MemoryAccess -
class MemoryBuffer -
class MemoryBufferByteStream -
class MemoryBufferRef -
class MemoryDef -
class MemoryDepChecker -
class MemoryDependenceAnalysis -
class MemoryDependenceResults -
class MemoryDependenceWrapperPass -
class MemoryEffectsBase -
class MemoryLocation -
class MemoryMatcher -
class MemoryOpRemark -
class MemoryPhi -
class MemorySSA -
class MemorySSAAnalysis -
class MemorySSAPrinterPass -
class MemorySSAUpdater -
class MemorySSAUtil -
class MemorySSAVerifierPass -
class MemorySSAWalker -
class MemorySSAWalkerPrinterPass -
class MemorySSAWrapperPass -
class MemorySanitizerOptions -
class MemorySanitizerPass -
class MemoryUse -
class MemoryUseOrDef -
class MemoryWriteTracking -
class MergeFunctionsPass -
class MergeICmpsPass -
class MergedLoadStoreMotionOptions -
class MergedLoadStoreMotionPass -
class MetaRenamerPass -
class Metadata -
class MetadataAsValue -
class MetadataLoader -
class MetadataLoaderCallbacks -
class MetadataTracking -
class MinMax -
class MinMaxIntrinsic -
class MockAOTModelBase -
class MockMCStreamer -
class ModifiedPostOrder -
class Module -
class ModuleBuilder -
class ModuleDebugInfoPrinterPass -
class ModuleInlinerPass -
class ModuleInlinerWrapperPass -
class ModuleMemProfilerPass -
class ModulePass -
class ModuleSlotTracker -
class ModuleSummaryIndex -
class ModuleSummaryIndexAnalysis -
class ModuleSummaryIndexWrapperPass -
class ModuleSymbolTable -
class ModuleThreadSanitizerPass -
class ModuleToFunctionPassAdaptor -
class ModuleToPostOrderCGSCCPassAdaptor -
class ModuloSchedule -
class ModuloScheduleExpander -
class ModuloScheduleExpanderMVE -
class ModuloScheduleTestAnnotater -
class MorphNodeToMatcher -
class MoveAutoInitPass -
class MoveChildMatcher -
class MoveParentMatcher -
class MoveSiblingMatcher -
class MulOperator -
class MultiClass -
class MultiHazardRecognizer -
class MustBeExecutedContextExplorer -
class MustBeExecutedContextPrinterPass -
class MustBeExecutedIterator -
class MustExecutePrinterPass -
class MutableArrayRef -
class MutableBinaryByteStream -
class NameAllowlistCoverageFilter -
class NameAnonGlobalPass -
class NameCoverageFilter -
class NameRegexCoverageFilter -
class NamedInstrProfRecord -
class NamedMDNode -
class NamedRegionTimer -
class NamespaceEmitter -
class NaryReassociatePass -
class NearMissInfo -
class Negator -
class NewArchiveMember -
class NewGVNPass -
class NfaStatePair -
class NoActiveBlocksOption -
class NoAliasScopeDeclInst -
class NoCFIValue -
class NoFolder -
class NoInferenceModelRunner -
class NoOpCGSCCAnalysis -
class NoOpCGSCCPass -
class NoOpFunctionAnalysis -
class NoOpFunctionPass -
class NoOpLoopAnalysis -
class NoOpLoopNestPass -
class NoOpLoopPass -
class NoOpMachineFunctionPass -
class NoOpModuleAnalysis -
class NoOpModulePass -
class NoRecurseLTOInferencePass -
class NodeSet -
class NoinlineNonPrevailing -
class NonLocalDepEntry -
class NonLocalDepResult -
class NonPOD -
class NonRelocatableStringpool -
class NoopSavedModelImpl -
class NoopStatistic -
class NotFoundError -
class NullableValueCastFailed -
class NumberedValues -
class NumericSubstitution -
class NumericVariable -
class NumericVariableUse -
class NumericalStabilitySanitizerPass -
class OProfileWrapper -
class ObjCARCContractPass -
class ObjCARCExpandPass -
class ObjCARCOptPass -
class ObjCSelectorNames -
class ObjDumper -
class ObjectCache -
class ObjectSizeOffsetEvaluator -
class ObjectSizeOffsetVisitor -
class ObjectSizeOpts -
class OffloadEntriesInfoManager -
class OffsetAndUnitID -
class OffsetSpan -
class OffsetsTag -
class OnDiskChainedHashTable -
class OnDiskChainedHashTableGenerator -
class OnDiskIterableChainedHashTable -
class OpInit -
class OpcodeGroup -
class OpcodeInfo -
class OpenMPIRBuilder -
class OpenMPIRBuilderConfig -
class OpenMPOptCGSCCPass -
class OpenMPOptPass -
class OperandBundleDefT -
class OperandBundleUse -
class OperandInfo -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class OperandTraits -
class Operator -
class OptBisect -
class OptDisable -
class OptLevelChanger -
class OptNoneInstrumentation -
class OptPassGate -
class OptPassGateInstrumentation -
class OptimizationLevel -
class OptimizationRemark -
class OptimizationRemarkAnalysis -
class OptimizationRemarkAnalysisAliasing -
class OptimizationRemarkAnalysisFPCommute -
class OptimizationRemarkEmitter -
class OptimizationRemarkEmitterAnalysis -
class OptimizationRemarkEmitterWrapperPass -
class OptimizationRemarkMissed -
class OptimizePHIsPass -
class OptimizedStructLayoutField -
class OptionalOperandTraits -
class OptionalValueCast -
class Oracle -
class OrcNativeTarget -
class OrderedChangedData -
class OuterAnalysisManagerProxy -
class OuterAnalysisManagerProxy -
class OuterAnalysisManagerProxy -
class OuterAnalysisManagerProxy -
class OuterAnalysisManagerProxy -
class OuterAnalysisManagerProxy -
class OutlinableRegion -
class OutlinedHashTree -
class OutlinedHashTreeRecord -
class OutputCategoryAggregator -
class OverflowError -
class OverflowTracking -
class OverflowingBinaryOperator -
class OverlapFuncFilters -
class OverlapStats -
class OwningArrayRef -
class PAEvalPass -
class PBQPRAConstraint -
class PBQPRAConstraintList -
class PGOContextualProfile -
class PGOCtxProfContext -
class PGOCtxProfFlatteningPass -
class PGOCtxProfLoweringPass -
class PGOCtxProfile -
class PGOCtxProfileReader -
class PGOCtxProfileWriter -
class PGOForceFunctionAttrsPass -
class PGOIndirectCallPromotion -
class PGOIndirectCallVisitor -
class PGOInstrumentationGen -
class PGOInstrumentationGenCreateVar -
class PGOInstrumentationUse -
class PGOMemOPSizeOpt -
class PGOOptions -
class PHIEliminationPass -
class PHINode -
class PHITransAddr -
class PMDataManager -
class PMStack -
class PMTopLevelManager -
class PSetIterator -
class PackedVector -
class PagedVector -
class PagedVectorTest_EmptyTest_Test -
class PagedVectorTest_ExpandTest_Test -
class PagedVectorTest_FillFullMultiPageTest_Test -
class PagedVectorTest_FillHalfMultiPageTest_Test -
class PagedVectorTest_FillLastMultiPageTest_Test -
class PagedVectorTest_FillNonTrivialConstructorDestructor_Test -
class PagedVectorTest_FillNonTrivialConstructor_Test -
class PagedVectorTest_FillSparseMultiPageTest_Test -
class PagedVectorTest_FullPageFillingTest_Test -
class PagedVectorTest_FunctionalityTest_Test -
class PagedVectorTest_HalfPageFillingTest_Test -
class PagedVectorTest_ShrinkTest_Test -
class ParameterizedTest -
class ParseInstructionInfo -
class ParseResult -
class ParseStatus -
class ParsedModuleAndIndex -
class ParserCallbacks -
class PartialInlinerPass -
class PartialReductionChain -
class PartiallyInlineLibCallsPass -
class Pass -
class PassBuilder -
class PassConfigImpl -
class PassInfo -
class PassInfoMixin -
class PassInstrumentation -
class PassInstrumentationAnalysis -
class PassInstrumentationCallbacks -
class PassManager -
class PassManager -
class PassManager -
class PassManager -
class PassManager -
class PassManagerPrettyStackEntry -
class PassManagerWrapper -
class PassNameParser -
class PassPlugin -
class PassPluginLibraryInfo -
class PassRegistrationListener -
class PassRegistry -
class PatchItem -
class PatchPointOpers -
class PatchableFunctionPass -
class Pattern -
class PatternToMatch -
class PatternsForOpcode -
class PeelingModuloScheduleExpander -
class PeepholeOptimizerPass -
class PerFunctionMIParsingState -
class PerTargetMIParsingState -
class PhiValues -
class PhiValuesAnalysis -
class PhiValuesPrinterPass -
class PhiValuesWrapperPass -
class PhonyExternalsGenerator -
class PhysRegInfo -
class PhysRegSUOper -
class PhysicalRegisterUsageAnalysis -
class PhysicalRegisterUsageInfo -
class PhysicalRegisterUsageInfoPrinterPass -
class PhysicalRegisterUsageInfoWrapperLegacy -
class PiBlockDDGNode -
class PipelineTuningOptions -
class PlaceSafepointsPass -
class PluginInlineAdvisorAnalysis -
class PluginInlineAdvisorTest_CustomAdvisor_Test -
class PluginInlineAdvisorTest_PluginLoad_Test -
class PluginInlineOrderAnalysis -
class PluginInlineOrderTest_NoInlineFoo_Test -
class PluginLoader -
class PointerDiffInfo -
class PointerEmbeddedInt -
class PointerIntPair -
class PointerIntPairInfo -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerLikeTypeTraits -
class PointerSumType -
class PointerSumTypeMember -
class PointerType -
class PointerUnion -
class PoisonFlags -
class PoisonValue -
class PoisoningVH -
class PolynomialInfo -
class PopulateLoopsDFS -
class PossiblyDisjointInst -
class PossiblyExactOperator -
class PossiblyNonNegInst -
class PostDomOnlyPrinter -
class PostDomOnlyViewer -
class PostDomPrinter -
class PostDomViewer -
class PostDominatorTree -
class PostDominatorTreeAnalysis -
class PostDominatorTreePrinterPass -
class PostDominatorTreeWrapperPass -
class PostGenericScheduler -
class PostMachineSchedulerPass -
class PostOrderFunctionAttrsPass -
class PostRAHazardRecognizerPass -
class PostRAMachineSinkingPass -
class PostRASchedulerPass -
class PotentialValuesState -
class PreISelIntrinsicLoweringPass -
class PredIterator -
class PredIteratorCache -
class PredicateAssume -
class PredicateBase -
class PredicateBranch -
class PredicateConstraint -
class PredicateExpander -
class PredicateInfo -
class PredicateInfoAnnotatedWriter -
class PredicateInfoBuilder -
class PredicateInfoPrinterPass -
class PredicateInfoVerifierPass -
class PredicateSwitch -
class PredicateWithEdge -
class PredicatedScalarEvolution -
class PreferredTuple -
class PreservedAnalyses -
class PreservedCFGCheckerInstrumentation -
class PreservedCastFlags -
class PressureChange -
class PressureDiff -
class PressureDiffs -
class PrettyStackTraceEntry -
class PrettyStackTraceFormat -
class PrettyStackTraceProgram -
class PrettyStackTraceString -
class PrintCrashIRInstrumentation -
class PrintFunctionPass -
class PrintIRInstrumentation -
class PrintLoopPass -
class PrintMIRPass -
class PrintMIRPreparePass -
class PrintModulePass -
class PrintPassInstrumentation -
class PrintPassOptions -
class Printable -
class PrintedExpr -
class PriorityQueue -
class PriorityWorklist -
class ProcessImplicitDefsPass -
class ProfOStream -
class ProfiParams -
class ProfileAnnotator -
class ProfileAnnotatorImpl -
class ProfileInjectorPass -
class ProfileSummary -
class ProfileSummaryAnalysis -
class ProfileSummaryBuilder -
class ProfileSummaryEntry -
class ProfileSummaryInfo -
class ProfileSummaryInfoWrapperPass -
class ProfileSummaryPrinterPass -
class ProfileVerifierPass -
class PrologEpilogCodeInserterPass -
class PrologEpilogInserterPass -
class PromotePass -
class PseudoProbe -
class PseudoProbeDescriptor -
class PseudoProbeDwarfDiscriminator -
class PseudoProbeHandler -
class PseudoProbeInserterPass -
class PseudoProbeInst -
class PseudoProbeManager -
class PseudoProbeSDNode -
class PseudoProbeUpdatePass -
class PseudoProbeVerifier -
class PseudoSourceValue -
class PseudoSourceValueManager -
class PtrAddChain -
class PtrToAddr -
class PtrToAddrInst -
class PtrToAddrOperator -
class PtrToInt -
class PtrToIntInst -
class PtrToIntOperator -
class PtrUseVisitor -
class RABasic -
class RABasicPass -
class RAGreedy -
class RAIIDelegateInstaller -
class RAIIMFObsDelInstaller -
class RAIIMFObserverInstaller -
class RAIITemporaryObserverInstaller -
class RAPBQPPass -
class RCToken -
class RGPassManager -
class RISCVAttributeParser -
class RISCVISAInfo -
class RNSuccIterator -
class RNSuccIterator -
class RTDyldMemoryManager -
class RTTIExtends -
class RTTIRoot -
class RadixTree -
class RandomIRBuilder -
class RandomNumberGenerator -
class RangeListEntry -
class RangeSpan -
class RangeSpanList -
class RawInstrProfReader -
class RawInstrProfReader -
class RawInstrProfReader -
class RawLocationWrapper -
class RdxInLoop -
class RdxOrdered -
class RdxUnordered -
class ReachingDef -
class ReachingDefAnalysis -
class ReachingDefInfo -
class ReachingDefInfoWrapperPass -
class ReachingDefPrinterPass -
class ReadyQueue -
class RealtimeSanitizerPass -
class ReassociatePass -
class RecTy -
class RecomputeGlobalsAAPass -
class Record -
class RecordAccessor -
class RecordChildMatcher -
class RecordKeeper -
class RecordMatcher -
class RecordMemRefMatcher -
class RecordRecTy -
class RecordResolver -
class RecordStreamer -
class RecordVal -
class RecordsEntry -
class RecurrenceDescriptor -
class Recycler -
class RecyclingAllocator -
class ReducePassList -
class ReducerWorkItem -
class RedundantDbgInstEliminationPass -
class RefCountedBase -
class RegAllocBase -
class RegAllocEvictionAdvisor -
class RegAllocEvictionAdvisorAnalysis -
class RegAllocEvictionAdvisorAnalysisLegacy -
class RegAllocEvictionAdvisorProvider -
class RegAllocFastPass -
class RegAllocPass -
class RegAllocPriorityAdvisor -
class RegAllocPriorityAdvisorAnalysis -
class RegAllocPriorityAdvisorAnalysisLegacy -
class RegAllocPriorityAdvisorProvider -
class RegAllocScore -
class RegAllocScoringPass -
class RegAllocTypeParser -
class RegBankSelect -
class RegBankSelectPass -
class RegClassByHwMode -
class RegClassWeight -
class RegImmPair -
class RegOrConstant -
class RegPressureDelta -
class RegPressureTracker -
class RegScavenger -
class RegSizeInfo -
class RegSizeInfoByHwMode -
class RegToMemPass -
class RegUnit -
class RegUnitSet -
class RegUsageInfoCollectorPass -
class RegUsageInfoPropagationPass -
class Regex -
class Region -
class RegionBase -
class RegionBase -
class RegionBase -
class RegionCoverageFilter -
class RegionCoverageInfo -
class RegionInfo -
class RegionInfoAnalysis -
class RegionInfoBase -
class RegionInfoBase -
class RegionInfoBase -
class RegionInfoPass -
class RegionInfoPrinterPass -
class RegionInfoVerifierPass -
class RegionNode -
class RegionNodeBase -
class RegionNodeBase -
class RegionNodeBase -
class RegionPass -
class RegionPressure -
class RegionTraits -
class RegionTraits -
class RegionTraits -
class Register -
class RegisterAsmPrinter -
class RegisterBank -
class RegisterBankInfo -
class RegisterClassInfo -
class RegisterCoalescerPass -
class RegisterImmPair -
class RegisterMCAsmBackend -
class RegisterMCAsmInfo -
class RegisterMCAsmInfoFn -
class RegisterMCAsmParser -
class RegisterMCCodeEmitter -
class RegisterMCInstrAnalysis -
class RegisterMCInstrAnalysisFn -
class RegisterMCInstrInfo -
class RegisterMCInstrInfoFn -
class RegisterMCObjectFileInfo -
class RegisterMCObjectFileInfoFn -
class RegisterMCRegInfo -
class RegisterMCRegInfoFn -
class RegisterMCSubtargetInfo -
class RegisterMCSubtargetInfoFn -
class RegisterMaskSDNode -
class RegisterOperands -
class RegisterPass -
class RegisterPassParser -
class RegisterPressure -
class RegisterRegAlloc -
class RegisterRegAllocBase -
class RegisterSDNode -
class RegisterScheduler -
class RegisterTarget -
class RegisterTargetMachine -
class RegisterTargetPassConfigCallback -
class Registry -
class Registry -
class Registry -
class RegsForValue -
class RelLookupTableConverterPass -
class ReleaseModeModelRunner -
class ReleaseModePriorityAdvisorAnalysisLegacy -
class ReleaseModePriorityAdvisorProvider -
class RelocAddrEntry -
class RelocationEntry -
class RelocationValueRef -
class RemoteResolver -
class RemoveLoadsIntoFakeUsesPass -
class RemoveRedundantDebugValuesPass -
class RenameIndependentSubregsPass -
class ReplaceWithVeclib -
class ReplaceWithVeclibLegacy -
class ReplaceableMetadataImpl -
class ReplacementItem -
class ReplayInlineAdvisor -
class ReplayInlinerSettings -
class RequireAnalysisPass -
class RequireAnalysisPass -
class RequireAnalysisPass -
class ReservoirSampler -
class ResetMachineFunctionPass -
class Resolver -
class ResolverError -
class ResourceManager -
class ResourcePriorityQueue -
class ResourceSegments -
class ResumeInst -
class RetainedKnowledge -
class ReturnInst -
class ReversePostOrderFunctionAttrsPass -
class ReversePostOrderTraversal -
class RewriteBuffer -
class RewriteRope -
class RewriteStatepointsForGC -
class RewriteSymbolPass -
class RootDDGNode -
class RopePiece -
class RopePieceBTree -
class RopePieceBTreeIterator -
class RopeRefCountString -
class RuntimeCheckingPtrGroup -
class RuntimeDyld -
class RuntimeDyldCOFF -
class RuntimeDyldCOFFAArch64 -
class RuntimeDyldCOFFI386 -
class RuntimeDyldCOFFThumb -
class RuntimeDyldCOFFX86_64 -
class RuntimeDyldChecker -
class RuntimeDyldCheckerExprEval -
class RuntimeDyldCheckerImpl -
class RuntimeDyldELF -
class RuntimeDyldELFMips -
class RuntimeDyldError -
class RuntimeDyldImpl -
class RuntimeDyldMachO -
class RuntimeDyldMachOAArch64 -
class RuntimeDyldMachOARM -
class RuntimeDyldMachOCRTPBase -
class RuntimeDyldMachOI386 -
class RuntimeDyldMachOX86_64 -
class RuntimeLibcall -
class RuntimeLibcallEmitter -
class RuntimeLibcallImpl -
class RuntimeLibcalls -
class RuntimeLibraryAnalysis -
class RuntimeLibraryInfoWrapper -
class RuntimePointerChecking -
class SCCIteratorTest_AllSmallGraphs_Test -
class SCCPInstVisitor -
class SCCPPass -
class SCCPSolver -
class SCEV -
class SCEVAA -
class SCEVAAResult -
class SCEVAAWrapperPass -
class SCEVAddExpr -
class SCEVAddRecExpr -
class SCEVCastExpr -
class SCEVCommutativeExpr -
class SCEVComparePredicate -
class SCEVConstant -
class SCEVCouldNotCompute -
class SCEVDivision -
class SCEVDivisionPrinterPass -
class SCEVExpander -
class SCEVExpanderCleaner -
class SCEVIntegralCastExpr -
class SCEVLoopAddRecRewriter -
class SCEVMinMaxExpr -
class SCEVMulExpr -
class SCEVNAryExpr -
class SCEVOperand -
class SCEVParameterRewriter -
class SCEVPredicate -
class SCEVPtrToIntExpr -
class SCEVRewriteVisitor -
class SCEVSMaxExpr -
class SCEVSMinExpr -
class SCEVSequentialMinMaxExpr -
class SCEVSequentialUMinExpr -
class SCEVSignExtendExpr -
class SCEVTraversal -
class SCEVTruncateExpr -
class SCEVUDivExpr -
class SCEVUMaxExpr -
class SCEVUMinExpr -
class SCEVUnionPredicate -
class SCEVUnknown -
class SCEVVScale -
class SCEVVisitor -
class SCEVWrapPredicate -
class SCEVZeroExtendExpr -
class SDDbgInfo -
class SDDbgLabel -
class SDDbgOperand -
class SDDbgValue -
class SDLoc -
class SDNode -
class SDNodeDesc -
class SDNodeFlags -
class SDNodeInfo -
class SDNodeIterator -
class SDTypeConstraint -
class SDUse -
class SDVTList -
class SDVTListNode -
class SDValue -
class SDep -
class SEHHandler -
class SEHUnwindMapEntry -
class SExtInst -
class SHA1 -
class SHA256 -
class SIToFPInst -
class SLPVectorizerPass -
class SMDiagnostic -
class SMFixIt -
class SMLoc -
class SMRange -
class SMSchedule -
class SMTExpr -
class SMTSolver -
class SMTSolverStatistics -
class SMTSort -
class SPIRVObjectWriter -
class SROAPass -
class SSAUpdater -
class SSAUpdaterBulk -
class SSAUpdaterImpl -
class SSAUpdaterTraits -
class SSAUpdaterTraits -
class SSAUpdaterTraits -
class SSAUpdaterTraits -
class SSAUpdaterTraits -
class SSAValueNameMap -
class SSPLayoutAnalysis -
class SSPLayoutInfo -
class STIPredicateExpander -
class STIPredicateFunction -
class SUnit -
class SUnitIterator -
class SafeStackPass -
class SafepointIRVerifierPass -
class SameType -
class SampleContextTracker -
class SampleProfileInference -
class SampleProfileLoaderBaseImpl -
class SampleProfileLoaderPass -
class SampleProfileMatcher -
class SampleProfileProbePass -
class SampleProfileProber -
class SampleProfileSummaryBuilder -
class SandboxVectorizerPass -
class SanitizerBinaryMetadataOptions -
class SanitizerBinaryMetadataPass -
class SanitizerCoverageOptions -
class SanitizerCoveragePass -
class SanitizerStatReport -
class SaturatingInst -
class SaveAndRestore -
class ScalableVectorType -
class ScalarEvolution -
class ScalarEvolutionAnalysis -
class ScalarEvolutionExpanderTest -
class ScalarEvolutionExpanderTest_ExpandNonIntegralPtrWithNullBase_Test -
class ScalarEvolutionExpanderTest_ExpandPtrTypeSCEV_Test -
class ScalarEvolutionExpanderTest_GEPFlags_Test -
class ScalarEvolutionExpanderTest_SCEVCacheNSW_Test -
class ScalarEvolutionExpanderTest_SCEVCacheNUW_Test -
class ScalarEvolutionExpanderTest_SCEVExpandInsertCanonicalIV_Test -
class ScalarEvolutionExpanderTest_SCEVExpandNonAffineAddRec_Test -
class ScalarEvolutionExpanderTest_SCEVExpanderIsSafeToExpandAt_Test -
class ScalarEvolutionExpanderTest_SCEVExpanderNSW_Test -
class ScalarEvolutionExpanderTest_SCEVExpanderNUW_Test -
class ScalarEvolutionExpanderTest_SCEVExpanderShlNSW_Test -
class ScalarEvolutionExpanderTest_SCEVZeroExtendExprNonIntegral_Test -
class ScalarEvolutionPrinterPass -
class ScalarEvolutionVerifierPass -
class ScalarEvolutionWrapperPass -
class ScalarEvolutionsTest -
class ScalarEvolutionsTest_ApplyLoopGuards_Test -
class ScalarEvolutionsTest_CheckGetPowerOfTwo_Test -
class ScalarEvolutionsTest_CommutativeExprOperandOrder_Test -
class ScalarEvolutionsTest_CompareSCEVComplexity_Test -
class ScalarEvolutionsTest_CompareValueComplexity_Test -
class ScalarEvolutionsTest_ComplexityComparatorIsStrictWeakOrdering2_Test -
class ScalarEvolutionsTest_ComplexityComparatorIsStrictWeakOrdering3_Test -
class ScalarEvolutionsTest_ComplexityComparatorIsStrictWeakOrdering_Test -
class ScalarEvolutionsTest_ForgetValueWithOverflowInst_Test -
class ScalarEvolutionsTest_ImpliedCond_Test -
class ScalarEvolutionsTest_ImpliedViaAddRecStart_Test -
class ScalarEvolutionsTest_MatchURem_Test -
class ScalarEvolutionsTest_ProveImplicationViaNarrowing_Test -
class ScalarEvolutionsTest_SCEVAddExpr_Test -
class ScalarEvolutionsTest_SCEVAddNUW_Test -
class ScalarEvolutionsTest_SCEVAddRecFromPHIwithLargeConstantAccum_Test -
class ScalarEvolutionsTest_SCEVAddRecFromPHIwithLargeConstants_Test -
class ScalarEvolutionsTest_SCEVComputeConstantDifference_Test -
class ScalarEvolutionsTest_SCEVComputeExpressionSize_Test -
class ScalarEvolutionsTest_SCEVExitLimitForgetLoop_Test -
class ScalarEvolutionsTest_SCEVExitLimitForgetValue_Test -
class ScalarEvolutionsTest_SCEVFoldSumOfTruncs_Test -
class ScalarEvolutionsTest_SCEVLoopDecIntrinsic_Test -
class ScalarEvolutionsTest_SCEVNormalization_Test -
class ScalarEvolutionsTest_SCEVUDivFloorCeiling_Test -
class ScalarEvolutionsTest_SCEVUnknownRAUW_Test -
class ScalarEvolutionsTest_SCEVZeroExtendExpr_Test -
class ScalarEvolutionsTest_SCEVgetExitLimitForGuardedLoop_Test -
class ScalarEvolutionsTest_SCEVgetRanges_Test -
class ScalarEvolutionsTest_SCEVrewriteUnknowns_Test -
class ScalarEvolutionsTest_SimplifiedPHI_Test -
class ScalarEvolutionsTest_SimplifyICmpOperands_Test -
class ScalarEvolutionsTest_UnsignedIsImpliedViaOperations_Test -
class ScalarizeMaskedMemIntrinPass -
class ScalarizerPass -
class ScalarizerPassOptions -
class ScaledNumber -
class ScaledNumberBase -
class ScanInfo -
class SchedBoundary -
class SchedDFSImpl -
class SchedDFSResult -
class SchedRegion -
class SchedRemainder -
class ScheduleDAG -
class ScheduleDAGInstrs -
class ScheduleDAGMI -
class ScheduleDAGMILive -
class ScheduleDAGMutation -
class ScheduleDAGSDNodes -
class ScheduleDAGTopologicalSort -
class ScheduleHazardRecognizer -
class SchedulingPriorityQueue -
class ScopeMatcher -
class ScopedFatalErrorHandler -
class ScopedHashTable -
class ScopedHashTableIterator -
class ScopedHashTableScope -
class ScopedHashTableVal -
class ScopedName -
class ScopedNoAliasAA -
class ScopedNoAliasAAResult -
class ScopedNoAliasAAWrapperPass -
class ScopedPrinter -
class ScoreboardHazardRecognizer -
class SectionEntry -
class SectionKind -
class SectionMemoryManager -
class SectionName -
class SelectInst -
class SelectOptimizePass -
class SelectPatternResult -
class SelectionDAG -
class SelectionDAGAddressAnalysisTest -
class SelectionDAGAddressAnalysisTest_fixedSizeFrameObjectsOutOfDiff_Test -
class SelectionDAGAddressAnalysisTest_fixedSizeFrameObjectsWithinDiff_Test -
class SelectionDAGAddressAnalysisTest_globalWithAliasedGlobal_Test -
class SelectionDAGAddressAnalysisTest_globalWithFrameObject_Test -
class SelectionDAGAddressAnalysisTest_noAliasingFrameObjects_Test -
class SelectionDAGAddressAnalysisTest_sameFrameObjectUnknownSize_Test -
class SelectionDAGAddressAnalysisTest_sameFrameObject_Test -
class SelectionDAGAddressAnalysisTest_twoFixedStackObjects_Test -
class SelectionDAGAddressAnalysisTest_unknownSizeFrameObjects_Test -
class SelectionDAGBuilder -
class SelectionDAGGenTargetInfo -
class SelectionDAGISel -
class SelectionDAGISelLegacy -
class SelectionDAGISelPass -
class SelectionDAGTargetInfo -
class SeparateConstOffsetFromGEPPass -
class SequenceToOffsetTable -
class Session -
class SetState -
class SetTheory -
class SetVector -
class ShadowResolver -
class ShadowStackGCLoweringPass -
class ShapeT -
class ShiftOfShiftedLogic -
class ShlOperator -
class ShouldNotRunFunctionPassesAnalysis -
class ShouldRunExtraPasses -
class ShouldRunExtraSimpleLoopUnswitch -
class ShouldRunExtraVectorPasses -
class ShrinkWrapPass -
class ShuffleBlockStrategy -
class ShuffleVectorConstantExpr -
class ShuffleVectorInst -
class ShuffleVectorSDNode -
class SignedDivisionByConstantInfo -
class SignpostEmitter -
class SignpostEmitterImpl -
class SimpleAAQueryInfo -
class SimpleBitstreamCursor -
class SimpleCaptureAnalysis -
class SimpleDDGNode -
class SimpleLoopSafetyInfo -
class SimpleLoopUnswitchPass -
class SimpleMaterializationUnit -
class SimpleRegistryEntry -
class SimplifyCFGOptions -
class SimplifyCFGPass -
class SimplifyQuery -
class SimplifyTypeTestsPass -
class SingleThreadExecutor -
class SinkAndHoistLICMFlags -
class SinkInstructionStrategy -
class SinkingPass -
class SizeOffsetAPInt -
class SizeOffsetType -
class SizeOffsetValue -
class SizeOffsetWeakTrackingVH -
class SjLjEHPreparePass -
class SlotIndex -
class SlotIndexes -
class SlotIndexesAnalysis -
class SlotIndexesPrinterPass -
class SlotIndexesWrapperPass -
class SlotMapping -
class SlotTracker -
class SmallBitVector -
class SmallDenseMap -
class SmallDenseSet -
class SmallMapVector -
class SmallPriorityWorklist -
class SmallPtrSet -
class SmallPtrSetImpl -
class SmallPtrSetImplBase -
class SmallPtrSetIterator -
class SmallPtrSetIteratorImpl -
class SmallSet -
class SmallSet -
class SmallSetIterator -
class SmallSetVector -
class SmallString -
class SmallVector -
class SmallVectorAlignmentAndSize -
class SmallVectorBase -
class SmallVectorBase -
class SmallVectorBase -
class SmallVectorImpl -
class SmallVectorMemoryBuffer -
class SmallVectorStorage -
class SmallVectorStorage -
class SmallVectorTemplateBase -
class SmallVectorTemplateBase -
class SmallVectorTemplateCommon -
class SoftFailNode -
class SourceCoverageView -
class SourceCoverageViewHTML -
class SourceCoverageViewText -
class SourceMgr -
class SparseBitVector -
class SparseBitVectorElement -
class SparseMultiSet -
class SparseSet -
class SparseSetValFunctor -
class SparseSetValTraits -
class SparseSolver -
class Spec -
class SpecSig -
class SpecialCaseList -
class SpecificBumpPtrAllocator -
class SpeculativeExecutionPass -
class Spelling -
class SpillPlacement -
class SpillPlacementAnalysis -
class SpillPlacementWrapperLegacy -
class Spiller -
class SplitAnalysis -
class SplitEditor -
class SplittingIterator -
class SrcOp -
class SrcValueSDNode -
class StableFunction -
class StableFunctionMap -
class StableFunctionMapRecord -
class StackColoringPass -
class StackFrameLayoutAnalysisPass -
class StackLifetime -
class StackLifetimePrinterPass -
class StackMapLivenessPass -
class StackMapOpers -
class StackMapParser -
class StackMaps -
class StackOffset -
class StackProtector -
class StackProtectorDescriptor -
class StackProtectorPass -
class StackSafetyAnalysis -
class StackSafetyGlobalAnalysis -
class StackSafetyGlobalInfo -
class StackSafetyGlobalInfoWrapperPass -
class StackSafetyGlobalPrinterPass -
class StackSafetyInfo -
class StackSafetyInfoWrapperPass -
class StackSafetyPrinterPass -
class StackSlotColoringPass -
class StandardInstrumentations -
class StateWrapper -
class StatepointDirectives -
class StatepointLoweringState -
class StatepointOpers -
class StaticDataAnnotator -
class StaticDataProfileInfo -
class StaticDataProfileInfoWrapperPass -
class StaticDataSplitter -
class StatisticThresholdFilter -
class StdThreadPool -
class StoreInfo -
class StoreInst -
class StoreSDNode -
class StrOffsetsContributionDescriptor -
class StraightLineStrengthReducePass -
class StreamingHTTPResponse -
class StringAttributeImpl -
class StringError -
class StringInit -
class StringLiteral -
class StringMap -
class StringMapEntry -
class StringMapEntryBase -
class StringMapEntryStorage -
class StringMapEntryStorage -
class StringMapImpl -
class StringMapIterBase -
class StringMapKeyIterator -
class StringMatcher -
class StringRecTy -
class StringRef -
class StringSaver -
class StringSet -
class StringSubstitution -
class StringSwitch -
class StringTable -
class StringTableBuilder -
class StringToOffsetTable -
class StripDeadCGProfilePass -
class StripDeadDebugInfoPass -
class StripDeadPrototypesPass -
class StripDebugDeclarePass -
class StripDebugMachineModulePass -
class StripGCRelocates -
class StripNonDebugSymbolsPass -
class StripNonLineTableDebugInfoPass -
class StripSymbolsPass -
class StrongType -
class StructLayout -
class StructType -
class StructuralHashPrinterPass -
class StructurizeCFGPass -
class SubClassReference -
class SubMultiClassReference -
class SubOperator -
class SubRegRange -
class SubRegRangeByHwMode -
class SubsectionAndTagToTagName -
class Substitution -
class SubsumingPositionIterator -
class SubtargetFeatureInfo -
class SubtargetFeatureKV -
class SubtargetFeatures -
class SubtargetSubTypeKV -
class SuccIterator -
class SucceededMatcher -
class SuffixTree -
class SuffixTreeInternalNode -
class SuffixTreeLeafNode -
class SuffixTreeNode -
class SuperRegClassIterator -
class SuspendCrossingInfo -
class SwiftErrorValueTracking -
class SwingSchedulerDAG -
class SwingSchedulerDDG -
class SwingSchedulerDDGEdge -
class SwitchFieldNode -
class SwitchInst -
class SwitchInstProfUpdateWrapper -
class SwitchOpcodeMatcher -
class SwitchTypeMatcher -
class SymScalar -
class SymbolCU -
class SymbolComparator -
class SymbolInfoTy -
class SymbolRemappingParseError -
class SymbolRemappingReader -
class SymbolTableEntry -
class SymbolTableList -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListParentType -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolTableListTraits -
class SymbolsMapKey -
class SyntheticCountsUtils -
class SyntheticCountsUtils -
class SyntheticCountsUtils -
class T1 -
class T2 -
class T3 -
class T4 -
class TBAAVerifier -
class TGLexer -
class TGParser -
class TGTimer -
class TGVarScope -
class TableGenOutputFiles -
class TagNameItem -
class TailCallElimPass -
class TailDuplicatePass -
class TailDuplicatePassBase -
class TailDuplicatePassBase -
class TailDuplicatePassBase -
class TailDuplicator -
class TailFoldingInfo -
class TarWriter -
class Target -
class TargetExtType -
class TargetExtTypeKeyInfo -
class TargetFeaturesEmitter -
class TargetFolder -
class TargetFrameLowering -
class TargetIRAnalysis -
class TargetIndexLocation -
class TargetIndexSDNode -
class TargetInstrInfo -
class TargetLibraryAnalysis -
class TargetLibraryInfo -
class TargetLibraryInfoImpl -
class TargetLibraryInfoWrapperPass -
class TargetLowering -
class TargetLoweringBase -
class TargetLoweringObjectFile -
class TargetLoweringObjectFileCOFF -
class TargetLoweringObjectFileELF -
class TargetLoweringObjectFileGOFF -
class TargetLoweringObjectFileMachO -
class TargetLoweringObjectFileWasm -
class TargetLoweringObjectFileXCOFF -
class TargetMachine -
class TargetMachineCTest_TargetMachineCreation_Test -
class TargetMachineCTest_TargetMachineOptions_Test -
class TargetOptions -
class TargetPassConfig -
class TargetRegionEntryInfo -
class TargetRegisterClass -
class TargetRegisterInfo -
class TargetRegisterInfoDesc -
class TargetRegistry -
class TargetSchedModel -
class TargetSubtargetInfo -
class TargetTransformInfo -
class TargetTransformInfoImplBase -
class TargetTransformInfoImplCRTPBase -
class TargetTransformInfoWrapperPass -
class TempMDNodeDeleter -
class TemporalProfTraceTy -
class TensorSpec -
class TernOpInit -
class TernTester -
class TernlogTest_TestConstantFolding_Test -
class TestAsmPrinter -
class TestHelper -
class TestHelper2 -
class TestRunner -
class TextChangeReporter -
class TextChangeReporter -
class TextChangeReporter -
class TextCodeGenDataReader -
class TextEncodingConverter -
class TextInstrProfReader -
class ThinLTOBitcodeWriterPass -
class ThinLTOCodeGenerator -
class ThreadPoolInterface -
class ThreadPoolStrategy -
class ThreadPoolTaskGroup -
class ThreadSafeAllocator -
class ThreadSafeRefCountedBase -
class ThreadSafeTrieRawHashMap -
class ThreadSafeTrieRawHashMapBase -
class ThreadSanitizerPass -
class ThunkInserter -
class ThunkInserterPass -
class TileInfo -
class TimePassesHandler -
class TimeProfilingPassesHandler -
class TimeRecord -
class TimeRegion -
class TimeTraceMetadata -
class TimeTraceProfiler -
class TimeTraceProfilerEntry -
class TimeTraceScope -
class Timer -
class TimerGlobals -
class TimerGroup -
class TinyPtrVector -
class ToolContext -
class ToolOutputFile -
class Trace -
class TrackUnresolvedResolver -
class TrackedRow -
class TrackingMDRef -
class TrackingStatistic -
class TrackingVH -
class TrailingObjects -
class TreePattern -
class TreePatternNode -
class TreePredicateCall -
class TreePredicateFn -
class TrieHashIndexGenerator -
class TrieNode -
class TrieRawHashMapTestHelper -
class Triple -
class Triplet -
class TripletResult -
class TrivialModuleBuilder -
class TruncInst -
class TruncInstCombine -
class TruncatedBLAKE3 -
class Twine -
class TwoAddressInstructionPass -
class Type -
class TypeAttributeImpl -
class TypeBasedAA -
class TypeBasedAAResult -
class TypeBasedAAWrapperPass -
class TypeConversionCostTblEntryT -
class TypeFinder -
class TypeIdOffsetVtableInfo -
class TypeIdSummary -
class TypeInfer -
class TypePromotionPass -
class TypeSanitizerPass -
class TypeSetByHwMode -
class TypeSize -
class TypeSwitch -
class TypeSwitch -
class TypeTestResolution -
class TypeUnitMetaInfo -
class TypedInit -
class TypedMDOperandIterator -
class TypedPointerType -
class TypedTrackingMDRef -
class TypesAreDistinct -
class TypesAreDistinct -
class TypesAreDistinct -
class UIToFPInst -
class Uint24 -
class UnOpInit -
class UnaryInstruction -
class UnaryOperator -
class UndefValue -
class UndefVarError -
class UnderlyingObject -
class UniformityInfoAnalysis -
class UniformityInfoPrinterPass -
class UniformityInfoWrapperPass -
class UnifyFunctionExitNodesPass -
class UnifyLoopExitsPass -
class UniqueBBID -
class UniqueMachineInstr -
class UniquePtrCast -
class UniqueStringSaver -
class UniqueTag -
class UniqueVector -
class UnitIndexEntry -
class UnpackMachineBundlesPass -
class UnreachableBlockElimPass -
class UnreachableInst -
class UnreachableMachineBlockElimPass -
class UnrollCostEstimator -
class UnrollLoopOptions -
class UnrolledInstAnalyzer -
class UnsetInit -
class UnsignedDivisionByConstantInfo -
class Use -
class UseCaptureInfo -
class UseListOrder -
class User -
class VAArgInst -
class VACopyInst -
class VAEndInst -
class VAStartInst -
class VFDatabase -
class VFInfo -
class VFParameter -
class VFRange -
class VFShape -
class VLIWMachineScheduler -
class VLIWPacketizerList -
class VLIWResourceModel -
class VNInfo -
class VPActiveLaneMaskPHIRecipe -
class VPAllSuccessorsIterator -
class VPBaseLoadStoreSDNode -
class VPBasicBlock -
class VPBinOpIntrinsic -
class VPBlendRecipe -
class VPBlockBase -
class VPBlockDeepTraversalWrapper -
class VPBlockShallowTraversalWrapper -
class VPBlockUtils -
class VPBranchOnMaskRecipe -
class VPBuilder -
class VPCanonicalIVPHIRecipe -
class VPCastIntrinsic -
class VPCmpIntrinsic -
class VPCostContext -
class VPDef -
class VPDerivedIVRecipe -
class VPDominatorTree -
class VPDoubleValueDef -
class VPEVLBasedIVPHIRecipe -
class VPExpandSCEVRecipe -
class VPExpressionRecipe -
class VPFirstOrderRecurrencePHIRecipe -
class VPGatherSDNode -
class VPGatherScatterSDNode -
class VPHeaderPHIRecipe -
class VPHistogramRecipe -
class VPIRBasicBlock -
class VPIRFlags -
class VPIRInstruction -
class VPIRMetadata -
class VPIRPhi -
class VPInstruction -
class VPInstructionWithType -
class VPInterleaveBase -
class VPInterleaveEVLRecipe -
class VPInterleaveRecipe -
class VPInterleavedAccessInfo -
class VPIntrinsic -
class VPLane -
class VPLoadFFSDNode -
class VPLoadSDNode -
class VPMatchContext -
class VPPhi -
class VPPhiAccessors -
class VPPredInstPHIRecipe -
class VPRecipeBase -
class VPRecipeBuilder -
class VPRecipeWithIRFlags -
class VPReductionEVLRecipe -
class VPReductionIntrinsic -
class VPReductionPHIRecipe -
class VPReductionRecipe -
class VPRegionBlock -
class VPRegisterUsage -
class VPReplicateRecipe -
class VPScalarIVStepsRecipe -
class VPScatterSDNode -
class VPSingleDefRecipe -
class VPSlotTracker -
class VPStoreSDNode -
class VPStridedLoadSDNode -
class VPStridedStoreSDNode -
class VPTransformState -
class VPTypeAnalysis -
class VPUnrollPartAccessor -
class VPUnrollPartAccessor -
class VPUnrollPartAccessor -
class VPUnrollPartAccessor -
class VPUser -
class VPValue -
class VPVectorEndPointerRecipe -
class VPVectorPointerRecipe -
class VPWidenCallRecipe -
class VPWidenCanonicalIVRecipe -
class VPWidenCastRecipe -
class VPWidenGEPRecipe -
class VPWidenInductionRecipe -
class VPWidenIntOrFpInductionRecipe -
class VPWidenIntrinsicRecipe -
class VPWidenLoadEVLRecipe -
class VPWidenLoadRecipe -
class VPWidenMemoryRecipe -
class VPWidenPHIRecipe -
class VPWidenPointerInductionRecipe -
class VPWidenRecipe -
class VPWidenSelectRecipe -
class VPWidenStoreEVLRecipe -
class VPWidenStoreRecipe -
class VPlan -
class VPlanPrinter -
class VPlanSlp -
class VPlanTestBase -
class VPlanTestIRBase -
class VPlanTransforms -
class VReg2SUnit -
class VReg2SUnitOperIdx -
class VRegInfo -
class VRegMaskOrUnit -
class VRegRenamer -
class VTByHwModePair -
class VTSDNode -
class VTableSlotSummary -
class ValID -
class Value -
class ValueAndVReg -
class ValueAsMetadata -
class ValueDFS -
class ValueDFS_Compare -
class ValueDeleter -
class ValueEnumerator -
class ValueFromPointerCast -
class ValueHandleBase -
class ValueInfo -
class ValueIsPresent -
class ValueIsPresent -
class ValueIsPresent -
class ValueIsPresent -
class ValueIsPresent -
class ValueIsPresent -
class ValueIterator -
class ValueLatticeElement -
class ValueMap -
class ValueMapCallbackVH -
class ValueMapConfig -
class ValueMapIteratorImpl -
class ValueMapTypeRemapper -
class ValueMapper -
class ValueMaterializer -
class ValueProfData -
class ValueProfRecord -
class ValueProfRecordClosure -
class ValueProfileCollector -
class ValueSimplifyStateType -
class ValueSymbolTable -
class ValueTypeByHwMode -
class VarBitInit -
class VarDefInit -
class VarInit -
class VarLenInst -
class VarLocInfo -
class VarStreamArray -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayExtractor -
class VarStreamArrayIterator -
class VariadicOperandTraits -
class VecDesc -
class VectorCombinePass -
class VectorType -
class VectorizationFactor -
class VectorizerParams -
class VerifierAnalysis -
class VerifierPass -
class VerifierSupport -
class VerifyInstrumentation -
class VersionTuple -
class Versioned -
class VersionedClause -
class VirtFuncOffset -
class VirtReg2IndexFunctor -
class VirtRegAuxInfo -
class VirtRegInfo -
class VirtRegMap -
class VirtRegMapAnalysis -
class VirtRegMapPrinterPass -
class VirtRegMapWrapperLegacy -
class VirtRegOrUnit -
class VirtRegRewriterPass -
class WarnMissedTransformationsPass -
class WasmEHFuncInfo -
class WasmEHPreparePass -
class WasmException -
class WeakTrackingVH -
class WeakVH -
class WholeProgramDevirtPass -
class WholeProgramDevirtResolution -
class WideIVInfo -
class WinCFGuard -
class WinCOFFObjectWriter -
class WinCOFFWriter -
class WinEHFuncInfo -
class WinEHHandlerType -
class WinEHPreparePass -
class WinEHTryBlockMapEntry -
class WinException -
class WindowScheduler -
class WithCache -
class WithColor -
class WithOverflowInst -
class WritableBinaryStream -
class WritableBinaryStreamRef -
class WritableMemoryBuffer -
class WriteThroughMemoryBuffer -
class X -
class X86ATTInstPrinter -
class X86AddressMode -
class X86AsmPrinter -
class X86AvoidTrailingCallPass -
class X86CallLowering -
class X86DynAllocaExpanderPass -
class X86ELFMCAsmInfo -
class X86ELFTargetObjectFile -
class X86FPStackifierPass -
class X86FoldTableEntry -
class X86FrameLowering -
class X86GenRegisterBankInfo -
class X86ISelDAGToDAGPass -
class X86InstPrinterCommon -
class X86InstrFMA3Group -
class X86InstrInfo -
class X86IntelInstPrinter -
class X86LegalizerInfo -
class X86LowerAMXIntrinsicsPass -
class X86LowerAMXTypePass -
class X86MCAsmInfoDarwin -
class X86MCAsmInfoGNUCOFF -
class X86MCAsmInfoMicrosoft -
class X86MCAsmInfoMicrosoftMASM -
class X86MCExpr -
class X86MCInstLowerTest -
class X86MCInstLowerTest_moExternalSymbol_MCSYMBOL_Test -
class X86MachineFunctionInfo -
class X86MaskedGatherSDNode -
class X86MaskedGatherScatterSDNode -
class X86MaskedScatterSDNode -
class X86Operand -
class X86PartialReductionPass -
class X86RegisterBankInfo -
class X86RegisterInfo -
class X86SelectionDAGInfo -
class X86Subtarget -
class X86TTIImpl -
class X86TargetLowering -
class X86TargetMachine -
class X86TargetStreamer -
class X86_64ELFTargetObjectFile -
class X86_64MCAsmInfoDarwin -
class X86_64MachoTargetObjectFile -
class XCOFFObjectWriter -
class XCOFFSymbolInfoTy -
class XRayInstrumentationPass -
class XXH128_hash_t -
class Y -
class YAMLParser_BlockSequenceEOF_Test -
class YAMLParser_DefaultDiagnosticFilename_Test -
class YAMLParser_DiagnosticFilenameFromBufferID_Test -
class YAMLParser_DifferentNodesIteratorOperatorEquals_Test -
class YAMLParser_DifferentNodesIteratorOperatorNotEquals_Test -
class YAMLParser_FailsIfMissingColon_Test -
class YAMLParser_FailsIfNotClosingArray_Test -
class YAMLParser_FailsIfNotClosingObject_Test -
class YAMLParser_FailsOnMissingComma_Test -
class YAMLParser_FailsOnMissingQuote_Test -
class YAMLParser_FlowSequenceTokensOutsideFlowSequence_Test -
class YAMLParser_HandlesEndOfFileGracefully_Test -
class YAMLParser_HandlesNullValuesInKeyValueNodesGracefully_Test -
class YAMLParser_NullTerminatedBlockScalars_Test -
class YAMLParser_ParsesArrayOfArrays_Test -
class YAMLParser_ParsesBlockLiteralScalars_Test -
class YAMLParser_ParsesBools_Test -
class YAMLParser_ParsesComplexMap_Test -
class YAMLParser_ParsesEmptyArrayWithWhitespace_Test -
class YAMLParser_ParsesEmptyArray_Test -
class YAMLParser_ParsesEmptyObject_Test -
class YAMLParser_ParsesEmptyString_Test -
class YAMLParser_ParsesEscapedQuotes_Test -
class YAMLParser_ParsesMultipleKeyValuePairsInObject_Test -
class YAMLParser_ParsesMultipleObjects_Test -
class YAMLParser_ParsesObject_Test -
class YAMLParser_ParsesPlainScalars_Test -
class YAMLParser_ParsesSpacesInBetweenTokens_Test -
class YAMLParser_ParsesStrings_Test -
class YAMLParser_SameNodeIteratorOperatorEquals_Test -
class YAMLParser_SameNodeIteratorOperatorNotEquals_Test -
class YAMLParser_UnfoldsScalarValue_Test -
class YAMLParser_WorksWithIteratorAlgorithms_Test -
class Z -
class ZExtInst -
class add_const_past_pointer -
class add_lvalue_reference_if_not_pointer -
class bar -
class base -
class bf_iterator -
class bf_iterator_storage -
class buffer_ostream -
class buffer_unique_ostream -
class cast_convert_val -
class cast_convert_val -
class cast_convert_val -
class cast_retty -
class cast_retty_impl -
class cast_retty_impl -
class cast_retty_impl -
class cast_retty_impl -
class cast_retty_impl -
class cast_retty_impl -
class cast_retty_wrap -
class cast_retty_wrap -
class circular_raw_ostream -
class concat_iterator -
class const_pointer_or_const_ref -
class const_set_bits_iterator_impl -
class decimalInfo -
class def_chain_iterator -
class deref -
class derived -
class derived_nocast -
class df_ext_iterator -
class df_iterator -
class df_iterator_default_set -
class df_iterator_storage -
class df_iterator_storage -
class df_iterator_storage -
class early_inc_iterator_impl -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class enum_iteration_traits -
class fallible_iterator -
class file_magic -
class filter_iterator_base -
class filter_iterator_impl -
class filter_iterator_impl -
class fltSemantics -
class foo -
class force_iteration_on_noniterable_enum_t -
class format_object -
class format_object_base -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class format_provider -
class formatted_raw_ostream -
class formatv_object -
class formatv_object_base -
class from_range_t -
class function_ref -
class function_ref -
class function_traits -
class function_traits -
class function_traits -
class function_traits -
class function_traits -
class generic_gep_type_iterator -
class hash_code -
class identity -
class idf_ext_iterator -
class idf_iterator -
class ilist_alloc_traits -
class ilist_alloc_traits -
class ilist_alloc_traits -
class ilist_alloc_traits -
class ilist_alloc_traits -
class ilist_alloc_traits -
class ilist_base -
class ilist_callback_traits -
class ilist_callback_traits -
class ilist_callback_traits -
class ilist_iterator -
class ilist_iterator_bits -
class ilist_iterator_w_bits -
class ilist_noalloc_traits -
class ilist_node -
class ilist_node_base -
class ilist_node_base -
class ilist_node_impl -
class ilist_node_traits -
class ilist_node_with_parent -
class ilist_parent -
class ilist_sentinel -
class ilist_sentinel_tracking -
class ilist_tag -
class ilist_traits -
class ilist_traits -
class ilist_traits -
class indent -
class index_range -
class indexed_accessor_iterator -
class indexed_accessor_range -
class iota_range -
class iplist -
class iplist_impl -
class ipo_ext_iterator -
class ipo_iterator -
class is_bitmask_enum -
class is_bitmask_enum -
class is_bitmask_enum -
class is_bitmask_enum -
class is_integral_or_enum -
class is_simple_type -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_cl -
class isa_impl_wrap -
class isa_impl_wrap -
class iterator_adaptor_base -
class iterator_facade_base -
class iterator_range -
class largest_bitmask_enum_bit -
class largest_bitmask_enum_bit -
class largest_bitmask_enum_bit -
class largest_bitmask_enum_bit -
class latency_sort -
class less_first -
class less_second -
class line_iterator -
class llvm_shutdown_obj -
class location_op_iterator -
class make_const_ptr -
class make_const_ref -
class mapped_iterator -
class mapped_iterator_base -
class memoryaccess_def_iterator_base -
class object_creator -
class object_deleter -
class object_deleter -
class on_first -
class pair_hash -
class po_ext_iterator -
class po_iterator -
class po_iterator_storage -
class po_iterator_storage -
class po_iterator_storage -
class po_iterator_storage -
class pointee_iterator -
class pointer_iterator -
class rank -
class rank -
class raw_fd_ostream -
class raw_fd_stream -
class raw_null_ostream -
class raw_os_ostream -
class raw_ostream -
class raw_ostream_proxy -
class raw_ostream_proxy_adaptor -
class raw_pwrite_stream -
class raw_pwrite_stream_proxy -
class raw_pwrite_stream_proxy_adaptor -
class raw_sha1_ostream -
class raw_socket_stream -
class raw_string_ostream -
class raw_svector_ostream -
class remove_cvref -
class resource_sort -
class scc_iterator -
class scc_member_iterator -
class scope_exit -
class simple_ilist -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class simplify_type -
class thread -
class type_identity -
class unique_function -
class unique_function -
class upward_defs_iterator
Functions
-
template <class T = void *>bool shouldReverseIterate ()Defined at line 9 of file llvm/include/llvm/Support/ReverseIteration.h
-
bool getNonFoldableAlwaysTrue ()Defined at line 15 of file llvm/include/llvm/Support/AlwaysTrue.h
-
void PrintTo (BranchProbability P, ::std::ostream * os)Defined at line 16 of file llvm/unittests/Support/BranchProbabilityTest.cpp
-
bool isImmSExti16i8Value (uint64_t Value)Defined at line 16 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
void reduceGlobalObjectsDeltaPass (Oracle & O, ReducerWorkItem & Program)Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalObjects.cpp
-
void reduceInstructionFlagsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 21 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionFlags.cpp
-
void reduceInvokesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 31 of file llvm/tools/llvm-reduce/deltas/ReduceInvokes.cpp
-
void reduceVolatileInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 38 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp
-
void reduceModuleDataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 17 of file llvm/tools/llvm-reduce/deltas/ReduceModuleData.cpp
-
void runIRPassesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 26 of file llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp
-
void simplifyInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Calls simplifyInstruction in each instruction in functions, and replaces
their values.
Defined at line 21 of file llvm/tools/llvm-reduce/deltas/SimplifyInstructions.cpp
-
void stripDebugInfoDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all aliases aren't inside any of the
desired Chunks.
Defined at line 17 of file llvm/tools/llvm-reduce/deltas/StripDebugInfo.cpp
-
bool IsOptionRecordsLess (const Record * A, const Record * B)Return true of Option record
is ordered before
Defined at line 16 of file llvm/utils/TableGen/Common/OptEmitter.cpp
-
Target & getTheX86_32Target ()Defined at line 14 of file llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
-
Target & getTheX86_64Target ()Defined at line 18 of file llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
-
void initializeCodeGenTestPass (PassRegistry & )Defined at line 34 of file llvm/unittests/CodeGen/CGPluginTest/Plugin/CodeGenTestPass.cpp
-
const char * getMinimalTypeForRange (uint64_t Range, unsigned int MaxSize)Returns the smallest unsigned integer type that can hold the given range.
MaxSize indicates the largest size of integer to consider (in bits) and only
supports values of at least 32.
Defined at line 15 of file llvm/utils/TableGen/Common/Types.cpp
-
void SuppressDiagnosticsOutput (const SMDiagnostic & , void * )Defined at line 18 of file llvm/unittests/Support/YAMLParserTest.cpp
-
template <typename FunctionT, typename BlockT>void computeEHOnlyBlocks (FunctionT & F, int & EHBlocks)Compute a list of blocks that are only reachable via EH paths.
Defined at line 18 of file llvm/include/llvm/Analysis/EHUtils.h
-
template <typename FunctionT, typename BlockT>void computeEHOnlyBlocks (FunctionT & F, DenseSet<BlockT *> & EHBlocks)Compute a list of blocks that are only reachable via EH paths.
Defined at line 18 of file llvm/include/llvm/Analysis/EHUtils.h
-
template <typename StackMapParserT>void prettyPrintStackMap (ScopedPrinter & W, const StackMapParserT & SMP)Pretty print a stackmap to the given ostream.
Defined at line 19 of file llvm/tools/llvm-readobj/StackMapPrinter.h
-
template <typename T>IllegalCast * cast ()Defined at line 20 of file llvm/unittests/Support/Casting.cpp
-
void PrintTo (const BPFunctionNode & Node, std::ostream * OS)Defined at line 20 of file llvm/unittests/ProfileData/BPFunctionNodeTest.cpp
-
Type * toVectorTy (Type * Scalar, ElementCount EC)A helper function for converting Scalar types to vector types. If
the incoming type is void, we return void. If the EC represents a
scalar, we return the scalar type.
Defined at line 20 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
const std::error_category & cxxdump_category ()Defined at line 42 of file llvm/tools/llvm-cxxdump/Error.cpp
-
int findPHICopyInsertPoint (MachineBasicBlock * MBB, MachineBasicBlock * SuccMBB, Register SrcReg)findCopyInsertPoint - Find a safe place in MBB to insert a copy from SrcReg
when following the CFG edge to SuccMBB. This needs to be after any def of
SrcReg, but before any subsequent point where control flow might jump out of
the basic block.
Defined at line 20 of file llvm/lib/CodeGen/PHIEliminationUtils.cpp
-
void reduceAliasesDeltaPass (Oracle & O, ReducerWorkItem & Program)Removes all aliases aren't inside any of the
desired Chunks.
Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceAliases.cpp
-
void reduceDbgRecordDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 27 of file llvm/tools/llvm-reduce/deltas/ReduceDbgRecords.cpp
-
void reduceFunctionBodiesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all the bodies of defined functions that aren't inside any of the
desired Chunks.
Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp
-
void reduceFunctionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all the Defined Functions
that aren't inside any of the desired Chunks.
Defined at line 24 of file llvm/tools/llvm-reduce/deltas/ReduceFunctions.cpp
-
void reduceGlobalValuesDeltaPass (Oracle & O, ReducerWorkItem & Program)Defined at line 44 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalValues.cpp
-
void reduceGlobalsInitializersDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all the Initialized GVs that aren't inside the desired Chunks.
Defined at line 22 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalVarInitializers.cpp
-
void reduceGlobalsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all the GVs that aren't inside the desired Chunks.
Defined at line 27 of file llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
-
void reduceInstructionFlagsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 20 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionFlagsMIR.cpp
-
void reduceInstructionsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes out-of-chunk arguments from functions, and modifies their calls
accordingly. It also removes allocations of out-of-chunk arguments.
Defined at line 32 of file llvm/tools/llvm-reduce/deltas/ReduceInstructions.cpp
-
void reduceTargetFeaturesAttrDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)TODO: We could maybe do better if we did a semantic parse of the attributes
through MCSubtargetInfo. Features can be flipped on and off in the string,
some are implied by target-cpu and can't be meaningfully re-added.
Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceTargetFeaturesAttr.cpp
-
void reduceUsingSimplifyCFGDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 23 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp
-
void sortAndReportDuplicates (MutableArrayRef Records, StringRef ObjectName)Sort an array of Records on the "Name" field, and check for records with
duplicate "Name" field. If duplicates are found, report a fatal error.
Defined at line 30 of file llvm/utils/TableGen/Common/Utils.cpp
-
void reduceIFuncsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 31 of file llvm/tools/llvm-reduce/deltas/ReduceAliases.cpp
-
void reduceFunctionDataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 32 of file llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.cpp
-
void reduceVirtualRegisterHintsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Remove register allocation hints from virtual registes.
Defined at line 35 of file llvm/tools/llvm-reduce/deltas/ReduceVirtualRegisters.cpp
-
void reduceIRInstructionReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Remove IR references from instructions (i.e. from memory operands)
Defined at line 39 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp
-
void BuryPointer (const void * Ptr)In tools that will exit soon anyway, going through the process of explicitly
deallocating resources can be unnecessary - better to leak the resources and
let the OS clean them up when the process ends. Use this function to ensure
the memory is not misdiagnosed as an unintentional leak by leak detection
tools (this is achieved by preserving pointers to the object in a globally
visible array).
Defined at line 15 of file llvm/lib/Support/BuryPointer.cpp
-
void reduceSpecialGlobalsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all special globals aren't inside any of the
desired Chunks.
Defined at line 28 of file llvm/tools/llvm-reduce/deltas/ReduceSpecialGlobals.cpp
-
int StrCmpOptionName (StringRef A, StringRef B, bool FallbackCaseSensitive)Comparison function for Option strings (option names
&
prefixes).
The ordering is *almost* case-insensitive lexicographic, with an exception.
'
\
0' comes at the end of the alphabet instead of the beginning (thus options
precede any other options which prefix them). Additionally, if two options
are identical ignoring case, they are ordered according to case sensitive
ordering if `FallbackCaseSensitive` is true.
Defined at line 20 of file llvm/lib/Support/OptionStrCmp.cpp
-
cl::OptionCategory & getColorCategory ()Defined at line 19 of file llvm/lib/Support/WithColor.cpp
-
bool lowerAtomicCmpXchgInst (AtomicCmpXchgInst * CXI)Convert the given Cmpxchg into primitive load and compare.
Defined at line 22 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp
-
void emitWebAssemblyDisassemblerTables (raw_ostream & OS, ArrayRef<const CodeGenInstruction *> NumberedInstructions)Defined at line 25 of file llvm/utils/TableGen/WebAssemblyDisassemblerEmitter.cpp
-
bool isGuard (const User * U)Returns true iff
has semantics of a guard expressed in a form of call
of llvm.experimental.guard intrinsic.
Defined at line 18 of file llvm/lib/Analysis/GuardUtils.cpp
-
bool canTrackArgumentsInterprocedurally (Function * F)Determine if the values of the given function's arguments can be tracked
interprocedurally. The value of an argument can be tracked if the function
has local linkage and its address is not taken.
Defined at line 19 of file llvm/lib/Analysis/ValueLatticeUtils.cpp
-
KCFIHashAlgorithm parseKCFIHashAlgorithm (StringRef Name)Parse a KCFI hash algorithm name.
Returns xxHash64 if the name is not recognized.
Defined at line 18 of file llvm/lib/Support/Hash.cpp
-
bool isSafeToDestroyConstant (const Constant * C)It is safe to destroy a constant iff it is only used by constants itself.
Note that constants cannot be cyclic, so this test is pretty easy to
implement recursively.
Defined at line 43 of file llvm/lib/Transforms/Utils/GlobalStatus.cpp
-
bool lowerUnaryVectorIntrinsicAsLoop (Module & M, CallInst * CI)Lower
as a loop.
is a unary intrinsic with a vector argument and
is deleted and replaced with a loop.
Defined at line 16 of file llvm/lib/Transforms/Utils/LowerVectorIntrinsics.cpp
-
void describeFuzzerIntOps (std::vector<fuzzerop::OpDescriptor> & Ops)Getters for the default sets of operations, per general category.
@
{
Defined at line 18 of file llvm/lib/FuzzMutate/Operations.cpp
-
bool TableGenParseFile (SourceMgr & InputSrcMgr, RecordKeeper & Records)Parse the TableGen file defined within the main buffer of the given
SourceMgr. On success, populates the provided RecordKeeper with the parsed
records and returns false. On failure, returns true.
NOTE: TableGen currently relies on global state within a given parser
invocation, so this function is not thread-safe.
Defined at line 17 of file llvm/lib/TableGen/Parser.cpp
-
Value * getDefaultValue (Type * T)Defined at line 28 of file llvm/tools/llvm-reduce/deltas/Utils.cpp
-
uint64_t getNumOfCalls (const Function & CallerFunction, const Function & CalledFunction)Returns number of calls of calledFunction by callerFunction.
Defined at line 40 of file llvm/lib/Analysis/HeatUtils.cpp
-
bool CheckBitcodeOutputToConsole (raw_ostream & stream_to_check)Determine if the raw_ostream provided is connected to a terminal. If so,
generate a warning message to errs() advising against display of bitcode
and return true. Otherwise just return false.
Check for output written to a console
Defined at line 18 of file llvm/lib/Support/SystemUtils.cpp
-
void initializeTransformUtils (PassRegistry & )Initialize all passes linked into the TransformUtils library.
Defined at line 22 of file llvm/lib/Transforms/Utils/Utils.cpp
-
void initWithColorOptions ()Defined at line 34 of file llvm/lib/Support/WithColor.cpp
-
bool hasAliasUse (Function & F)Defined at line 41 of file llvm/tools/llvm-reduce/deltas/Utils.cpp
-
int StrCmpOptionPrefixes (ArrayRef APrefixes, ArrayRef BPrefixes)Comparison function for Option prefixes.
Defined at line 35 of file llvm/lib/Support/OptionStrCmp.cpp
-
bool CC_X86 (unsigned int ValNo, MVT ValVT, MVT LocVT, LocInfo LocInfo, ArgFlagsTy ArgFlags, Type * OrigTy, CCState & State)Defined at line of file
-
void parseFuzzerCLOpts (int ArgC, char *[] ArgV)Parse cl::opts from a fuzz target commandline.
This handles all arguments after -ignore_remaining_args=1 as cl::opts.
Defined at line 18 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp
-
StringRef stringifyKCFIHashAlgorithm (KCFIHashAlgorithm Algorithm)Convert a KCFI hash algorithm enum to its string representation.
Defined at line 25 of file llvm/lib/Support/Hash.cpp
-
std::pair<Value *, Value *> buildCmpXchgValue (IRBuilderBase & Builder, Value * Ptr, Value * Cmp, Value * Val, Align Alignment)Emit IR to implement the given cmpxchg operation on values in registers,
returning the new value.
Defined at line 40 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp
-
bool isWidenableCondition (const Value * V)Returns true iff
has semantics of llvm.experimental.widenable.condition
call
Defined at line 22 of file llvm/lib/Analysis/GuardUtils.cpp
-
StringRef machineToStr (MachineTypes MT)Returns a user-readable string for ARMNT, ARM64, AMD64, I386.
Other MachineTypes values must not be passed in.
Defined at line 36 of file llvm/lib/Object/WindowsMachineFlag.cpp
-
void initRandomSeedOptions ()Defined at line 43 of file llvm/lib/Support/RandomNumberGenerator.cpp
-
void PrintRecyclerStats (size_t Size, size_t Align, size_t FreeListSize)PrintRecyclingAllocatorStats - Helper for RecyclingAllocator for
printing statistics.
Defined at line 31 of file llvm/lib/Support/Allocator.cpp
-
void getSipHash_2_4_64 (ArrayRef<uint8_t> In, const uint8_t (&)[16] K, uint8_t (&)[8] Out)Computes a SipHash-2-4 64-bit result.
Defined at line 28 of file llvm/lib/Support/SipHash.cpp
-
void makeGuardControlFlowExplicit (Function * DeoptIntrinsic, CallInst * Guard, bool UseWC)Splits control flow at point of
replacing it with explicit branch
by the condition of guard's first argument. The taken branch then goes to
the block that contains
successors, and the non-taken branch
goes to a newly-created deopt block that contains a sole call of the
deoptimize function
If 'UseWC' is set, preserve the
widenable nature of the guard by lowering to equivelent form. If not set,
lower to a form without widenable semantics.
Defined at line 30 of file llvm/lib/Transforms/Utils/GuardUtils.cpp
-
bool shouldOptimizeForSize (const MachineFunction * MF, ProfileSummaryInfo * PSI, const MachineBlockFrequencyInfo * BFI, PGSOQueryType QueryType)Returns true if machine function
is suggested to be size-optimized
based on the profile.
Defined at line 27 of file llvm/lib/CodeGen/MachineSizeOpts.cpp
-
LLT getLLTForType (Type & Ty, const DataLayout & DL)Construct a low-level type based on an LLVM type.
Defined at line 20 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp
-
void initializeScalarOpts (PassRegistry & )Initialize all passes linked into the ScalarOpts library.
Defined at line 21 of file llvm/lib/Transforms/Scalar/Scalar.cpp
-
bool canTrackReturnsInterprocedurally (Function * F)Determine if the values of the given function's returns can be tracked
interprocedurally. Return values can be tracked if the function has an
exact definition and it doesn't have the "naked" attribute. Naked functions
may contain assembly code that returns untrackable values.
Defined at line 23 of file llvm/lib/Analysis/ValueLatticeUtils.cpp
-
void dumpBytes (ArrayRef<uint8_t> Bytes, raw_ostream & OS)Convert `Bytes' to a hex string and output to `OS'
Defined at line 25 of file llvm/lib/MC/MCInstPrinter.cpp
-
Value * emitGEPOffset (IRBuilderBase * Builder, const DataLayout & DL, User * GEP, bool NoAssumptions)Given a getelementptr instruction/constantexpr, emit the code necessary to
compute the offset from the base pointer (without adding in the base
pointer). Return the result as a signed integer of intptr size.
When NoAssumptions is true, no assumptions about index computation not
overflowing is made.
Defined at line 22 of file llvm/lib/Analysis/Local.cpp
-
void DecodeINSERTPSMask (unsigned int Imm, SmallVectorImpl<int> & ShuffleMask, bool SrcIsMem)Decode a 128-bit INSERTPS instruction as a v4f32 shuffle mask.
Defined at line 26 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
uintptr_t getStackPointer ()The value is not guaranteed to point to anything specific. It can be used to
estimate how much stack space has been used since the previous call.
Defined at line 27 of file llvm/lib/Support/ProgramStack.cpp
-
uint32_t getKCFITypeID (StringRef MangledTypeName, KCFIHashAlgorithm Algorithm)Compute KCFI type ID from mangled type name.
The algorithm can be xxHash64 or FNV-1a.
Defined at line 35 of file llvm/lib/Support/Hash.cpp
-
bool isWidenableBranch (const User * U)Returns true iff
is a widenable branch (that is,
extractWidenableCondition returns widenable condition).
Defined at line 26 of file llvm/lib/Analysis/GuardUtils.cpp
-
void initializeVectorization (PassRegistry & )Initialize all passes linked into the Vectorization library.
Defined at line 21 of file llvm/lib/Transforms/Vectorize/Vectorize.cpp
-
MachineTypes getMachineType (StringRef S)Maps /machine: arguments to a MachineTypes value.
Only returns ARMNT, ARM64, AMD64, I386, or IMAGE_FILE_MACHINE_UNKNOWN.
Defined at line 23 of file llvm/lib/Object/WindowsMachineFlag.cpp
-
unsigned int parseSDPatternOperatorProperties (const Record * R)Defined at line 16 of file llvm/utils/TableGen/Basic/SDNodeProperties.cpp
-
void getSipHash_2_4_128 (ArrayRef<uint8_t> In, const uint8_t (&)[16] K, uint8_t (&)[16] Out)Computes a SipHash-2-4 128-bit result.
Defined at line 33 of file llvm/lib/Support/SipHash.cpp
-
void invokeGlobalTargetPassConfigCallbacks (TargetMachine & TM, PassManagerBase & PM, TargetPassConfig * PassConfig)Defined at line 21 of file llvm/lib/Target/RegisterTargetPassConfigCallback.cpp
-
Type * toVectorizedStructTy (StructType * StructTy, ElementCount EC)A helper for converting structs of scalar types to structs of vector types.
Note:
- If
is scalar,
is returned unchanged
- Only unpacked literal struct types are supported
Defined at line 16 of file llvm/lib/IR/VectorTypeUtils.cpp
-
MachineBasicBlock * PeelSingleBlockLoop (LoopPeelDirection Direction, MachineBasicBlock * Loop, MachineRegisterInfo & MRI, const TargetInstrInfo * TII)Peels a single block loop. Loop must have two successors, one of which
must be itself. Similarly it must have two predecessors, one of which must
be itself.
The loop block is copied and inserted into the CFG such that two copies of
the loop follow on from each other. The copy is inserted either before or
after the loop based on Direction.
Phis are updated and an unconditional branch inserted at the end of the
clone so as to execute a single iteration.
The trip count of Loop is not updated.
Defined at line 26 of file llvm/lib/CodeGen/MachineLoopUtils.cpp
-
bool shouldOptimizeForSize (const MachineBasicBlock * MBB, ProfileSummaryInfo * PSI, const MachineBlockFrequencyInfo * MBFI, PGSOQueryType QueryType)Returns true if machine basic block
is suggested to be size-optimized
based on the profile.
Defined at line 36 of file llvm/lib/CodeGen/MachineSizeOpts.cpp
-
bool canTrackGlobalVariableInterprocedurally (GlobalVariable * GV)Determine if the value maintained in the given global variable can be
tracked interprocedurally. A value can be tracked if the global variable
has local linkage and is only used by non-volatile loads and stores.
Defined at line 27 of file llvm/lib/Analysis/ValueLatticeUtils.cpp
-
void FindFunctionBackedges (const Function & F, SmallVectorImpl<std::pair<const BasicBlock *, const BasicBlock *>> & Result)Analyze the specified function to find all of the loop backedges in the
function and return them. This is a relatively cheap (compared to
computing dominators and loop info) analysis.
The output is added to Result, as pairs of
<from
,to> edge info.
Defined at line 35 of file llvm/lib/Analysis/CFG.cpp
-
bool isGuardAsWidenableBranch (const User * U)Returns true iff
has semantics of a guard expressed in a form of a
widenable conditional branch to deopt block.
Defined at line 33 of file llvm/lib/Analysis/GuardUtils.cpp
-
unsigned int getDefaultStackSize ()Based on
or the equivalent.
Defined at line 44 of file llvm/lib/Support/ProgramStack.cpp
-
bool checkIfAlreadyInstrumented (Module & M, StringRef Flag)Check if module has flag attached, if not add the flag.
Defined at line 28 of file llvm/lib/Transforms/Utils/Instrumentation.cpp
-
basic_string getModeName (unsigned int Mode)Defined at line 27 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp
-
AArch64BuildAttrSubsections extractBuildAttributesSubsections (const llvm::AArch64AttributeParser & )Defined at line 24 of file llvm/lib/Support/AArch64AttributeParser.cpp
-
unique_ptr getLazyIRModule (unique_ptr Buffer, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)If the given MemoryBuffer holds a bitcode image, return a Module
for it which does lazy deserialization of function bodies. Otherwise,
attempt to parse it as LLVM Assembly and return a fully populated
Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode
reader to optionally enable lazy metadata loading. This takes ownership
of
Defined at line 34 of file llvm/lib/IRReader/IRReader.cpp
-
Type * toScalarizedStructTy (StructType * StructTy)A helper for converting structs of vector types to structs of scalar types.
Note: Only unpacked literal struct types are supported.
Defined at line 32 of file llvm/lib/IR/VectorTypeUtils.cpp
-
template <typename T>SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & )User-defined CTAD guides.
Defined at line of file
-
bool isCheckForZeroAndMulWithOverflow (Value * Op0, Value * Op1, bool IsAnd, Use *& Y)Match one of the patterns up to the select/logic op:
%Op0 = icmp ne i4 %X, 0
%Agg = call { i4, i1 }
.[us]mul.with.overflow.i4(i4 %X, i4 %Y)
%Op1 = extractvalue { i4, i1 } %Agg, 1
%ret = select i1 %Op0, i1 %Op1, i1 false / %ret = and i1 %Op0, %Op1
%Op0 = icmp eq i4 %X, 0
%Agg = call { i4, i1 }
.[us]mul.with.overflow.i4(i4 %X, i4 %Y)
%NotOp1 = extractvalue { i4, i1 } %Agg, 1
%Op1 = xor i1 %NotOp1, true
%ret = select i1 %Op0, i1 true, i1 %Op1 / %ret = or i1 %Op0, %Op1
Callers are expected to align that with the operands of the select/logic.
IsAnd is set to true if the Op0 and Op1 are used as the first pattern.
If Op0 and Op1 match one of the patterns above, return true and fill Y's
use.
Defined at line 21 of file llvm/lib/Analysis/OverflowInstAnalysis.cpp
-
void handleExecNameEncodedBEOpts (StringRef ExecName)Handle backend options that are encoded in the executable name.
Parses some common backend options out of a specially crafted executable
name (argv[0]). For example, a name like llvm-foo-fuzzer--aarch64-gisel
might set up an AArch64 triple and the Global ISel selector. This should be
called *before* parseFuzzerCLOpts if calling both.
This is meant to be used for environments like OSS-Fuzz that aren't capable
of passing in command line arguments in the normal way.
Defined at line 32 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp
-
void initializeIPO (PassRegistry & )Initialize all passes linked into the IPO library.
Defined at line 19 of file llvm/lib/Transforms/IPO/IPO.cpp
-
template <typename T>SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & , const T & )Defined at line of file
-
template <typename T>SaveAndRestore<T> <deduction guide for SaveAndRestore> (T & , T && )Defined at line of file
-
uint64_t getStableSipHash (StringRef Str)Compute a stable 64-bit hash of the given string.
The exact algorithm is the little-endian interpretation of the
non-doubled (i.e. 64-bit) result of applying a SipHash-2-4 using
a specific seed value which can be found in the source.
Defined at line 39 of file llvm/lib/Support/SipHash.cpp
-
bool isVectorizedStructTy (StructType * StructTy)Returns true if `StructTy` is an unpacked literal struct where all elements
are vectors of matching element count. This does not include empty structs.
Defined at line 44 of file llvm/lib/IR/VectorTypeUtils.cpp
-
void initializeAnalysis (PassRegistry & )Initialize all passes linked into the Analysis library.
Defined at line 20 of file llvm/lib/Analysis/Analysis.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DWARFLocationExpression & Loc)Defined at line 15 of file llvm/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp
-
bool hasAttributeInAssume (AssumeInst & Assume, Value * IsOn, StringRef AttrName, uint64_t * ArgVal)Query the operand bundle of an llvm.assume to find a single attribute of
the specified kind applied on a specified Value.
This has a non-constant complexity. It should only be used when a single
attribute is going to be queried.
Return true iff the queried attribute was found.
If ArgVal is set. the argument will be stored to ArgVal.
Defined at line 43 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
EHPersonality classifyEHPersonality (const Value * Pers)See if the given exception handling personality function is one
that we understand. If so, return a description of it; otherwise return
Unknown.
Defined at line 23 of file llvm/lib/IR/EHPersonalities.cpp
-
void initializeCodeGen (PassRegistry & )Initialize all passes linked into the CodeGen library.
Defined at line 20 of file llvm/lib/CodeGen/CodeGen.cpp
-
template <typename Callable>scope_exit<Callable> <deduction guide for scope_exit> (Callable )Defined at line of file
-
optional getAllocTokenModeFromString (StringRef Name)Returns the AllocTokenMode from its canonical string name; if an invalid
name was provided returns nullopt.
Defined at line 20 of file llvm/lib/Support/AllocToken.cpp
-
unsigned int getICmpCode (Predicate Pred)Encode a icmp predicate into a three bit mask. These bits are carefully
arranged to allow folding of expressions such as:
(A
<
B) | (A > B) --> (A != B)
Note that this is only valid if the first and second predicates have the
same sign. It is illegal to do: (A u
<
B) | (A s> B)
Three bits are used to represent the condition, as follows:
0 A > B
1 A == B
2 A
<
B
<
=> Value Definition
000 0 Always false
001 1 A > B
010 2 A == B
011 3 A >= B
100 4 A
<
B
101 5 A != B
110 6 A
<
= B
111 7 Always true
Defined at line 21 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
unsigned int ComputeLinearIndex (Type * Ty, const unsigned int * Indices, const unsigned int * IndicesEnd, unsigned int CurIndex)Compute the linearized index of a member in a nested
aggregate/struct/array.
Given an LLVM IR aggregate type and a sequence of insertvalue or
extractvalue indices that identify a member, return the linearized index of
the start of the member, i.e the number of element in memory before the
sought one. This is disconnected from the number of bytes.
Parameters
Ty is the type indexed byIndices is an optional pointer in the indices list to the current index.IndicesEnd is the end of the indices list.CurIndex is the current index in the recursion.Defined at line 33 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeGlobalISel (PassRegistry & )Initialize all passes linked into the GlobalISel library.
Defined at line 17 of file llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp
-
std::ostream & operator<< (std::ostream & OS, LLT Ty)Defined at line 12 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.cpp
-
std::optional<RoundingMode> convertStrToRoundingMode (StringRef )Returns a valid RoundingMode enumerator when given a string
that is valid as input in constrained intrinsic rounding mode
metadata.
Defined at line 24 of file llvm/lib/IR/FPEnv.cpp
-
StringRef getAllocTokenModeAsString (AllocTokenMode Mode)Returns the canonical string name for the given AllocTokenMode.
Defined at line 31 of file llvm/lib/Support/AllocToken.cpp
-
void initializeTarget (PassRegistry & )Initialize all passes linked into the CodeGen library.
Defined at line 35 of file llvm/lib/Target/Target.cpp
-
ModulePass * createBarrierNoopPass ()===----------------------------------------------------------------------===//
createBarrierNoopPass - This pass is purely a module pass barrier in a pass
manager.
Defined at line 43 of file llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
-
std::ostream & operator<< (std::ostream & OS, const MachineFunction & MF)Defined at line 21 of file llvm/unittests/CodeGen/GlobalISel/GISelMITest.cpp
-
std::unique_ptr<Module> CloneModule (const Module & M)Return an exact copy of the specified module
Defined at line 40 of file llvm/lib/Transforms/Utils/CloneModule.cpp
-
optional convertRoundingModeToStr (RoundingMode )For any RoundingMode enumerator, returns a string valid as input in
constrained intrinsic rounding mode metadata.
Defined at line 38 of file llvm/lib/IR/FPEnv.cpp
-
int CloneModule (const Module & M, int & VMap)Defined at line of file
-
Constant * getPredForICmpCode (unsigned int Code, bool Sign, Type * OpTy, CmpInst::Predicate & Pred)This is the complement of getICmpCode. It turns a predicate code into
either a constant true or false or the predicate for a new ICmp.
The sign is passed in to determine which kind of predicate to use in the
new ICmp instruction.
Non-NULL return value will be a true or false constant.
NULL return means a new ICmp is needed. The predicate is output in Pred.
Defined at line 40 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
raw_ostream & operator<< (raw_ostream & OS, ModRefInfo MR)Debug print ModRefInfo.
Defined at line 19 of file llvm/lib/Support/ModRef.cpp
-
Error decodeBase64 (StringRef Input, std::vector<char> & Output)Defined at line 37 of file llvm/lib/Support/Base64.cpp
-
void initializeBasicBlockSectionsProfileReaderWrapperPassPass (PassRegistry & )Defined at line 35 of file llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp
-
int CloneModule (const Module & M, int & VMap, function_ref<bool (const GlobalValue *)> ShouldCloneDefinition)Return a copy of the specified module. The ShouldCloneDefinition function
controls whether a specific GlobalValue's definition is cloned. If the
function returns false, the module copy will contain an external reference
in place of the global definition.
Defined at line of file
-
template <typename Container>iterator_range<llvm::detail::IterOfRange<Container>> <deduction guide for iterator_range> (Container && )Defined at line of file
-
void initializeMachineBlockHashInfoPass (PassRegistry & )Defined at line 45 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp
-
StringRef insertStrRef (StringRef S)Copies a StringRef into a static pool to preserve it.
FIXME: Use UniqueStringSaver instead.
Defined at line 14 of file llvm/utils/TableGen/Common/GlobalISel/CombinerUtils.cpp
-
void * allocate_buffer (size_t Size, size_t Alignment)Allocate a buffer of memory with the given size and alignment.
When the compiler supports aligned operator new, this will use it to
handle even over-aligned allocations.
However, this doesn't make any attempt to leverage the fancier techniques
like posix_memalign due to portability. It is mostly intended to allow
compatibility with platforms that, after aligned allocation was added, use
reduced default alignment.
Defined at line 14 of file llvm/lib/Support/MemAlloc.cpp
-
basic_string demangle (basic_string_view MangledName)Attempt to demangle a string using different demangling schemes.
The function uses heuristics to determine which demangling scheme to use.
Parameters
MangledName - reference to string to demangle.Defined at line 20 of file llvm/lib/Demangle/Demangle.cpp
-
file_magic identify_magic (StringRef magic)Identify the magic in magic.
Defined at line 33 of file llvm/lib/BinaryFormat/Magic.cpp
-
void deallocate_buffer (void * Ptr, size_t Size, size_t Alignment)Deallocate a buffer of memory with the given size and alignment.
If supported, this will used the sized delete operator. Also if supported,
this will pass the alignment to the delete operator.
The pointer must have been allocated with the corresponding new operator,
most likely using the above helper.
Defined at line 27 of file llvm/lib/Support/MemAlloc.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DWARFAddressRange & R)Defined at line 30 of file llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp
-
uint32_t serializeSectionKind (DWARFSectionKind Kind, unsigned int IndexVersion)Convert the internal value for a section kind to an on-disk value.
The conversion depends on the version of the index section.
IndexVersion is expected to be either 2 for pre-standard GNU proposal
or 5 for DWARFv5 package file.
Defined at line 42 of file llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const HexNumber & Value)Defined at line 14 of file llvm/lib/Support/ScopedPrinter.cpp
-
bool streamFile (HTTPServerRequest & Request, StringRef FilePath)Sets the response to stream the file at FilePath, if available, and
otherwise an HTTP 404 error response.
Defined at line 37 of file llvm/lib/Debuginfod/HTTPServer.cpp
-
template <typename PassT>MFPropsModifier<PassT> <deduction guide for MFPropsModifier> (PassT & P, MachineFunction & MF)Additional deduction guide to suppress warning.
Defined at line of file
-
void initializeDominanceFrontierWrapperPassPass (PassRegistry & )Defined at line 35 of file llvm/lib/Analysis/DominanceFrontier.cpp
-
MCStreamer * createSPIRVStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Defined at line 19 of file llvm/lib/MC/MCSPIRVStreamer.cpp
-
template <typename T>void BuryPointer (std::unique_ptr<T> Ptr)Defined at line 24 of file llvm/include/llvm/Support/BuryPointer.h
-
raw_ostream & operator<< (raw_ostream & OS, LegacyLegalizeAction Action)Defined at line 28 of file llvm/lib/CodeGen/GlobalISel/LegacyLegalizerInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, LegalizeAction Action)Defined at line 43 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
-
void initializeEdgeBundlesWrapperLegacyPass (PassRegistry & )Defined at line 31 of file llvm/lib/CodeGen/EdgeBundles.cpp
-
MCStreamer * createDXContainerStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Defined at line 19 of file llvm/lib/MC/MCDXContainerStreamer.cpp
-
Expected localCache (const Twine & CacheNameRef, const Twine & TempFilePrefixRef, const Twine & CacheDirectoryPathRef, function AddBuffer)Create a local file system cache which uses the given cache name, temporary
file prefix, cache directory and file callback. This function does not
immediately create the cache directory if it does not yet exist; this is
done lazily the first time a file is added. The cache name appears in error
messages for errors during caching. The temporary file prefix is used in the
temporary file naming scheme used when writing files atomically.
Defined at line 29 of file llvm/lib/Support/Caching.cpp
-
MCRelocationInfo * createMCRelocationInfo (const Triple & TT, MCContext & Ctx)Defined at line 27 of file llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp
-
void initializeFuncletLayoutPass (PassRegistry & )Defined at line 39 of file llvm/lib/CodeGen/FuncletLayout.cpp
-
MCAsmParserExtension * createGOFFAsmParser ()Defined at line 35 of file llvm/lib/MC/MCParser/GOFFAsmParser.cpp
-
BasicBlock * CloneBasicBlock (const BasicBlock * BB, int & VMap, const Twine & NameSuffix, Function * F, ClonedCodeInfo * CodeInfo, bool MapAtoms)Return a copy of the specified basic block, but without
embedding the block into a particular function. The block returned is an
exact copy of the specified basic block, without any remapping having been
performed. Because of this, this is only suitable for applications where
the basic block will be inserted into the same function that it was cloned
from (loop unrolling would use this, for example).
Also, note that this function makes a direct copy of the basic block, and
can thus produce illegal LLVM code. In particular, it will copy any PHI
nodes from the original block, even though there are no predecessors for the
newly cloned block (thus, phi nodes will have to be updated). Also, this
block will branch to the old successors of the original block: these
successors will have to have any PHI nodes updated to account for the new
incoming edges.
The correlation between instructions in the source and result basic blocks
is recorded in the VMap map.
If you have a particular suffix you'd like to use to add to any cloned
names, specify it as the optional third parameter.
If you would like the basic block to be auto-inserted into the end of a
function, you can specify it as the optional fourth parameter.
If you would like to collect additional information about the cloned
function, you can specify a ClonedCodeInfo object with the optional fifth
parameter.
indicates whether source location atoms should be mapped for
later remapping. Must be true when you duplicate a code path and a source
location is intended to appear twice in the generated instructions. Can be
set to false if you are transplanting code from one place to another.
Setting true (default) is always safe (won't produce incorrect debug info)
but is sometimes unnecessary, causing extra work that could be avoided by
setting the parameter to false.
Defined at line of file
-
pair performOptimizedStructLayout (MutableArrayRef Fields)Compute a layout for a struct containing the given fields, making a
best-effort attempt to minimize the amount of space required.
Two features are supported which require a more careful solution
than the well-known "sort by decreasing alignment" solution:
- Fields may be assigned a fixed offset in the layout. If there are
gaps among the fixed-offset fields, the algorithm may attempt
to allocate flexible-offset fields into those gaps. If that's
undesirable, the caller should "block out" those gaps by e.g.
just creating a single fixed-offset field that represents the
entire "header".
- The size of a field is not required to be a multiple of, or even
greater than, the field's required alignment. The only constraint
on fields is that they must not be zero-sized.
To simplify the implementation, any fixed-offset fields in the
layout must appear at the start of the field array, and they must
be ordered by increasing offset.
The algorithm will produce a guaranteed-minimal layout with no
interior padding in the following "C-style" case:
- every field's size is a multiple of its required alignment and
- either no fields have initially fixed offsets, or the fixed-offset
fields have no interior padding and end at an offset that is at
least as aligned as all the flexible-offset fields.
Otherwise, while the algorithm will make a best-effort attempt to
avoid padding, it cannot guarantee a minimal layout, as there is
no known efficient algorithm for doing so.
The layout produced by this algorithm may not be stable across LLVM
releases. Do not use this anywhere where ABI stability is required.
Flexible-offset fields with the same size and alignment will be ordered
the same way they were in the initial array. Otherwise the current
algorithm makes no effort to preserve the initial order of
flexible-offset fields.
On return, all fields will have been assigned a fixed offset, and the
array will be sorted in order of ascending offsets. Note that this
means that the fixed-offset fields may no longer form a strict prefix
if there's any padding before they end.
The return value is the total size of the struct and its required
alignment. Note that the total size is not rounded up to a multiple
of the required alignment; clients which require this can do so easily.
Defined at line 42 of file llvm/lib/Support/OptimizedStructLayout.cpp
-
Value * FindAvailableLoadedValue (LoadInst * Load, BasicBlock * ScanBB, int & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)Scan backwards to see if we have the value of the given load available
locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call
this function, if ScanFrom points at the beginning of the block, it's safe
to continue scanning the predecessors.
Note that performing load CSE requires special care to make sure the
metadata is set appropriately. In particular, aliasing metadata needs
to be merged. (This doesn't matter for store-to-load forwarding because
the only relevant load gets deleted.)
Parameters
Load The load we want to replace.ScanBB The basic block to scan.ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.AA Optional pointer to alias analysis, to make the scan more precise.IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.Defined at line of file
-
unique_ptr getGCStrategy (StringRef Name)Lookup the GCStrategy object associated with the given gc name.
Defined at line 24 of file llvm/lib/IR/GCStrategy.cpp
-
Function * CloneFunction (Function * F, int & VMap, ClonedCodeInfo * CodeInfo)Return a copy of the specified function and add it to that
function's module. Also, any references specified in the VMap are changed
to refer to their mapped value instead of the original one. If any of the
arguments to the function are in the VMap, the arguments are deleted from
the resultant function. The VMap is updated to include mappings from all of
the instructions and basicblocks in the function from their old to new
values. The final argument captures information about the cloned code if
non-null.
Defined at line of file
-
void initializeLazyBlockFrequencyInfoPassPass (PassRegistry & )Defined at line 30 of file llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp
-
void initializeLazyBranchProbabilityInfoPassPass (PassRegistry & )Defined at line 30 of file llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser::FunctionFaultInfoAccessor & )Defined at line 32 of file llvm/lib/Object/FaultMapParser.cpp
-
void initializeLazyMachineBlockFrequencyInfoPassPass (PassRegistry & )Defined at line 28 of file llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser::FunctionInfoAccessor & )Defined at line 42 of file llvm/lib/Object/FaultMapParser.cpp
-
void initializeGISelCSEAnalysisWrapperPassPass (PassRegistry & )Defined at line 26 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
-
void initializeLiveRegMatrixWrapperLegacyPass (PassRegistry & )Defined at line 43 of file llvm/lib/CodeGen/LiveRegMatrix.cpp
-
void initializeLiveStacksWrapperLegacyPass (PassRegistry & )Defined at line 27 of file llvm/lib/CodeGen/LiveStacks.cpp
-
bool parseAssemblyInto (MemoryBufferRef F, Module * M, ModuleSummaryIndex * Index, SMDiagnostic & Err, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback, AsmParserContext * ParserContext)This function is the low-level interface to the LLVM Assembly Parser.
This is kept as an independent function instead of being inlined into
parseAssembly for the convenience of interactive users that want to add
recently parsed bits to an existing module.
Parameters
F The MemoryBuffer containing assemblyM The module to add data to.Index The index to add data to.Err Error result info.Slots The optional slot mapping that will be initialized during parsing.DataLayoutCallback Override datalayout in the llvm assembly.Returns
true on error.
Defined at line 40 of file llvm/lib/AsmParser/Parser.cpp
-
void initializeLocalizerPass (PassRegistry & )Defined at line 32 of file llvm/lib/CodeGen/GlobalISel/Localizer.cpp
-
void CloneFunctionInto (Function * NewFunc, const Function * OldFunc, int & VMap, CloneFunctionChangeType Changes, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)Clone OldFunc into NewFunc, transforming the old arguments into references
to VMap values. Note that if NewFunc already has basic blocks, the ones
cloned into it will be added to the end of the function. This function
fills in a list of return instructions, and can optionally remap types
and/or append the specified suffix to all values cloned.
If
is
VMap is
required to contain no non-identity GlobalValue mappings. Otherwise,
referenced metadata will be cloned.
If
is less than
indicating cloning into the same module (even if it's LocalChangesOnly), if
debug info metadata transitively references a
it will be
cloned, effectively upgrading
to GlobalChanges while suppressing
cloning of types and compile units.
If
is
the new
module's
will get updated with any newly created compile
units. (
leaves that work for the
caller.)
FIXME: Consider simplifying this function by splitting out
and expecting / updating callers to call it
first when / how it's needed.
Defined at line of file
-
template <typename T, typename GenT>T uniform (GenT & Gen, T Min, T Max)Return a uniformly distributed random value between
and
Defined at line 21 of file llvm/include/llvm/FuzzMutate/Random.h
-
bool isImmSExti32i8Value (uint64_t Value)Defined at line 21 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
void exitWithError (const Twine & Message, StringRef Whence, StringRef Hint)Defined at line 21 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h
-
std::ostream & operator<< (std::ostream & OS, LegalizeAction Act)Defined at line 21 of file llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
-
uint32_t djbHash (StringRef Buffer, uint32_t H)The Bernstein hash function used by the DWARF accelerator tables.
Defined at line 22 of file llvm/include/llvm/Support/DJB.h
-
template <class T, class InfoT>T * getUniqued (DenseSet<T *, InfoT> & Store, const typename InfoT::KeyTy & Key)Defined at line 22 of file llvm/lib/IR/MetadataImpl.h
-
vector getOpDescriptions ()Defined at line 22 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp
-
void PrintTo (Type * T, ::std::ostream * OS)Defined at line 23 of file llvm/unittests/FuzzMutate/OperationsTest.cpp
-
int initTM ()Defined at line 23 of file llvm/unittests/Target/X86/TernlogTest.cpp
-
template <unsigned Size, class ContainerTy, class PredicateFn>auto filter_to_vector (ContainerTy && C, PredicateFn && Pred)Filter a range to a SmallVector with the element types deduced.
Defined at line 24 of file llvm/include/llvm/ADT/SmallVectorExtras.h
-
void CollectDiagnosticsOutput (const SMDiagnostic & Diag, void * Ctx)Assumes Ctx is an SMDiagnostic where Diag can be stored.
Defined at line 24 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool isSpecificDef (const Init & N, StringRef Def)A convenience function to check that an Init refers to a specific def. This
is primarily useful for testing for defs and similar in DagInit's since
DagInit's support any type inside them.
Defined at line 24 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h
-
void dumpBasicBlockLabel (const BasicBlock * BB, ModuleSlotTracker & MST)Defined at line 24 of file llvm/lib/Transforms/Coroutines/SuspendCrossingInfo.cpp
-
template <typename T>std::ostream & operator<< (std::ostream & OS, const StringMap<T> & M)Support for printing to std::ostream, for use with e.g. producing more
useful error messages with Google Test.
Defined at line 24 of file llvm/include/llvm/Testing/ADT/StringMap.h
-
unsigned int encodeSLEB128 (int64_t Value, raw_ostream & OS, unsigned int PadTo)Utility function to encode a SLEB128 value to an output stream. Returns
the length in bytes of the encoded value.
Defined at line 24 of file llvm/include/llvm/Support/LEB128.h
-
template <class InputBytes>basic_string encodeBase64 (const InputBytes & Bytes)Defined at line 24 of file llvm/include/llvm/Support/Base64.h
-
template <typename ParentClass>void invalidateParentIListOrdering (ParentClass * Parent)Notify basic blocks when an instruction is inserted.
Defined at line 25 of file llvm/lib/IR/SymbolTableListTraitsImpl.h
-
void writeMemProfSchema (ProfOStream & OS, const memprof::MemProfSchema & Schema)Serialize Schema.
Defined at line 25 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
void * safe_malloc (size_t Sz)Defined at line 25 of file llvm/include/llvm/Support/MemAlloc.h
-
optional unwrap ( Model, bool & JIT)Defined at line 25 of file llvm/include/llvm/Target/CodeGenCWrappers.h
-
void prettyPrintBaseTypeRef (DWARFUnit * U, raw_ostream & OS, DIDumpOptions DumpOpts, ArrayRef Operands, unsigned int Operand)Defined at line 25 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
bool isThumbFunc (symbol_iterator Symbol, const object::ObjectFile & Obj, content_iterator Section)Defined at line 25 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h
-
Type * toVectorTy (Type * Scalar, unsigned int VF)Defined at line 26 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
bool isSuperReg (const MCRegisterInfo * MCRI, MCRegister Reg)This analysis only keeps track and cares about super registers, not the
subregisters. All reads from/writes to subregisters are considered the
same operation to super registers.
Defined at line 26 of file llvm/lib/DWARFCFIChecker/Registers.h
-
bool isImmSExti64i8Value (uint64_t Value)Defined at line 26 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
void PrintTo (const hash_code & code, std::ostream * os)Helper for test code to print hash codes.
Defined at line 26 of file llvm/unittests/ADT/HashingTest.cpp
-
template <typename T, typename GenT>T uniform (GenT & Gen)Return a uniformly distributed random value of type
Defined at line 26 of file llvm/include/llvm/FuzzMutate/Random.h
-
tm getStructTM (time_point TP)Defined at line 26 of file llvm/lib/Support/Chrono.cpp
-
template <typename LiveRangeT, typename EqClassesT>void DistributeRange (LiveRangeT & LR, LiveRangeT *[] SplitLRs, EqClassesT VNIClasses)Helper function that distributes live range value numbers and the
corresponding segments of a primary live range
to a list of newly
created live ranges
maps each value number in
to 0 meaning it should stay or to 1..N meaning it should go to a specific
live range in the
array.
Defined at line 26 of file llvm/lib/CodeGen/LiveRangeUtils.h
-
bool extractConstantMask (const Constant * C, unsigned int MaskEltSizeInBits, APInt & UndefElts, SmallVectorImpl<uint64_t> & RawMask)Defined at line 26 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
-
auto instrs (const MachineBasicBlock & BB)Defined at line 27 of file llvm/include/llvm/CodeGen/MachineSSAContext.h
-
auto instrs (const BasicBlock & BB)Defined at line 27 of file llvm/include/llvm/IR/SSAContext.h
-
error_code make_error_code (cxxdump_error e)Defined at line 27 of file llvm/tools/llvm-cxxdump/Error.h
-
void removeSSACopy (Function & F)Defined at line 27 of file llvm/unittests/Transforms/IPO/FunctionSpecializationTest.cpp
-
void printChar (raw_ostream & OS, char C)Defined at line 27 of file llvm/utils/TableGen/Basic/SequenceToOffsetTable.h
-
bool CompareVars (const ASanStackVariableDescription & a, const ASanStackVariableDescription & b)We sort the stack variables by alignment (largest first) to minimize
unnecessary large gaps due to alignment.
It is tempting to also sort variables by size so that larger variables
have larger redzones at both ends. But reordering will make report analysis
harder, especially when temporary unnamed variables are present.
So, until we can provide more information (type, line number, etc)
for the stack variables we avoid reordering them too much.
Defined at line 28 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
void PrintTo (BasicBlock * BB, ::std::ostream * OS)Defined at line 28 of file llvm/unittests/FuzzMutate/OperationsTest.cpp
-
Error createError (const Twine & Msg)Defined at line 29 of file llvm/tools/llvm-readobj/ObjDumper.cpp
-
template <class T>T unwrapOrError (StringRef Input, Expected<T> EO)Defined at line 29 of file llvm/tools/llvm-readobj/llvm-readobj.h
-
bool isImmSExti64i32Value (uint64_t Value)Defined at line 30 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
bool isPreISelGenericOpcode (unsigned int Opcode)Check whether the given Opcode is a generic opcode that is not supposed
to appear after ISel.
Defined at line 30 of file llvm/include/llvm/CodeGen/TargetOpcodes.h
-
stable_hash stable_hash_combine (ArrayRef Buffer)Defined at line 30 of file llvm/include/llvm/ADT/StableHashing.h
-
int parseIR (LLVMContext & C, const char * IR)Defined at line 30 of file llvm/unittests/IR/DroppedVariableStatsIRTest.cpp
-
template <typename T>std::ostream & operator<< (std::ostream & OS, const StringMapEntry<T> & E)Support for printing to std::ostream, for use with e.g. producing more
useful error messages with Google Test.
Defined at line 30 of file llvm/include/llvm/Testing/ADT/StringMapEntry.h
-
raw_ostream & operator<< (raw_ostream & Out, const VersionTuple & V)Print a version number.
Defined at line 30 of file llvm/lib/Support/VersionTuple.cpp
-
SmallVector getSuperRegs (const MCRegisterInfo * MCRI)Defined at line 30 of file llvm/lib/DWARFCFIChecker/Registers.h
-
bool operator< (const ExportedSymbol & LHS, const ExportedSymbol & RHS)Defined at line 31 of file llvm/unittests/TextAPI/TextStubHelpers.h
-
template <class ContainerTy, class PredicateFn>auto filter_to_vector (ContainerTy && C, PredicateFn && Pred)Filter a range to a SmallVector with the element types deduced.
Defined at line 31 of file llvm/include/llvm/ADT/SmallVectorExtras.h
-
template <typename T>basic_string debugString (T && Op)Simple helper function that returns a string as printed from a op.
Defined at line 31 of file llvm/include/llvm/Support/LSP/Transport.h
-
void ExpectParseError (StringRef Message, StringRef Input)Checks that the given input gives a parse error. Makes sure that an error
text is available and the parse fails.
Defined at line 31 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool operator== (const MCOperand & a, const MCOperand & b)Defined at line 31 of file llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
-
bool operator== (const DWARFLocationExpression & L, const DWARFLocationExpression & R)Defined at line 32 of file llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h
-
void add16 (uint8_t * p, int16_t v)Defined at line 32 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
-
void exitWithError (error_code EC, StringRef Whence)Defined at line 33 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h
-
void PrintTo (Value * V, ::std::ostream * OS)Defined at line 33 of file llvm/unittests/FuzzMutate/OperationsTest.cpp
-
uint64_t writeMemProfRecords (ProfOStream & OS, llvm::MapVector<GlobalValue::GUID, memprof::IndexedMemProfRecord> & MemProfRecordData, memprof::MemProfSchema * Schema, IndexedVersion Version, llvm::DenseMap<memprof::CallStackId, memprof::LinearCallStackId> * MemProfCallStackIndexes)Serialize MemProfRecordData. Return RecordTableOffset.
Defined at line 33 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
Uint24 getSwappedBytes (Uint24 C)Needed by swapByteOrder().
Defined at line 34 of file llvm/include/llvm/Support/DataExtractor.h
-
bool isImmUnsignedi8Value (uint64_t Value)Defined at line 34 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
bool operator< (const X86FoldTableEntry & TE, unsigned int Opcode)Defined at line 34 of file llvm/lib/Target/X86/X86InstrFoldTables.h
-
template <typename GraphT>void viewGraphForFunction (Function & F, GraphT Graph, StringRef Name, bool IsSimple)Defined at line 34 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
-
float normalizeSpillWeight (float UseDefFreq, unsigned int Size, unsigned int NumInstr)Normalize the spill weight of a live interval
The spill weight of a live interval is computed as:
(sum(use freq) + sum(def freq)) / (K + size)
Parameters
UseDefFreq Expected number of executed use and def instructions per function call. Derived from block frequencies.Size Size of live interval as returnexd by getSize()NumInstr Number of instructions using this live intervalDefined at line 34 of file llvm/include/llvm/CodeGen/CalcSpillWeights.h
-
template <class CostType>const CostTblEntryT<CostType> * CostTableLookup (ArrayRef<CostTblEntryT<CostType>> Tbl, int ISD, MVT Ty)Find in cost table.
Defined at line 34 of file llvm/include/llvm/CodeGen/CostTable.h
-
bool operator== (const ExportedSymbol & LHS, const ExportedSymbol & RHS)Defined at line 35 of file llvm/unittests/TextAPI/TextStubHelpers.h
-
const Record * getDefOfSubClass (const Init & N, StringRef Cls)A convenience function to check that an Init refers to a def that is a
subclass of the given class and coerce it to a def if it is. This is
primarily useful for testing for subclasses of GIDefKind and similar in
DagInit's since DagInit's support any type inside them.
Defined at line 35 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h
-
template <typename T>ArchType getMachineArchType (T machine)Defined at line 35 of file llvm/include/llvm/Object/WindowsMachineFlag.h
-
bool isTargetSpecificOpcode (unsigned int Opcode)Check whether the given Opcode is a target-specific opcode.
Defined at line 36 of file llvm/include/llvm/CodeGen/TargetOpcodes.h
-
stable_hash stable_hash_combine (stable_hash A, stable_hash B)Defined at line 36 of file llvm/include/llvm/ADT/StableHashing.h
-
template <typename Loc, typename Function, typename AnchorList = ArrayRef<std::pair<Loc, Function>>>void longestCommonSequence (AnchorList AnchorList1, AnchorList AnchorList2, llvm::function_ref<bool (const Function &, const Function &)> FunctionMatchesProfile, llvm::function_ref<void (Loc, Loc)> InsertMatching)This function implements the Myers diff algorithm used for stale profile
matching. The algorithm provides a simple and efficient way to find the
Longest Common Subsequence(LCS) or the Shortest Edit Script(SES) of two
sequences. For more details, refer to the paper 'An O(ND) Difference
Algorithm and Its Variations' by Eugene W. Myers.
In the scenario of profile fuzzy matching, the two sequences are the IR
callsite anchors and profile callsite anchors. The subsequence equivalent
parts from the resulting SES are used to remap the IR locations to the
profile locations. As the number of function callsite is usually not big,
we currently just implements the basic greedy version(page 6 of the paper).
Defined at line 36 of file llvm/include/llvm/Transforms/Utils/LongestCommonSequence.h
-
bool operator< (AtomicOrderingCABI , AtomicOrderingCABI )Defined at line 37 of file llvm/include/llvm/Support/AtomicOrdering.h
-
hash_code hash_value (const NonPOD & obj)Defined at line 37 of file llvm/unittests/ADT/HashingTest.cpp
-
bool operator!= (const DWARFLocationExpression & L, const DWARFLocationExpression & R)Defined at line 37 of file llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h
-
void or32le (void * P, int32_t V)Defined at line 37 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
-
Expected setupMemoryBuffer (const Twine & Filename, vfs::FileSystem & FS)Defined at line 37 of file llvm/lib/CGData/CodeGenDataReader.cpp
-
template <typename T>Error readDescriptorRanges (DXContainerYAML::RootParameterHeaderYaml & Header, DXContainerYAML::RootSignatureYamlDesc & RootSigDesc, object::DirectX::DescriptorTableView * DTV)Defined at line 37 of file llvm/lib/ObjectYAML/DXContainerYAML.cpp
-
bool operator> (AtomicOrderingCABI , AtomicOrderingCABI )Defined at line 38 of file llvm/include/llvm/Support/AtomicOrdering.h
-
void exitWithError (Error E, StringRef Whence)Defined at line 38 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h
-
bool isImmUnsignedi4Value (uint64_t Value)Defined at line 38 of file llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h
-
template <unsigned Size, class ContainerTy, class FuncTy>auto map_to_vector (ContainerTy && C, FuncTy && F)Map a range to a SmallVector with element types deduced from the mapping.
Defined at line 38 of file llvm/include/llvm/ADT/SmallVectorExtras.h
-
char hexdigit (unsigned int X, bool LowerCase)hexdigit - Return the hexadecimal character for the
given number
(which should be less than 16).
Defined at line 38 of file llvm/include/llvm/ADT/StringExtras.h
-
void * safe_calloc (size_t Count, size_t Sz)Defined at line 38 of file llvm/include/llvm/Support/MemAlloc.h
-
bool operator<= (AtomicOrderingCABI , AtomicOrderingCABI )Defined at line 39 of file llvm/include/llvm/Support/AtomicOrdering.h
-
void PrintTo (Constant * C, ::std::ostream * OS)Defined at line 39 of file llvm/unittests/FuzzMutate/OperationsTest.cpp
-
bool operator== (const MCInst & a, const MCInst & b)Defined at line 39 of file llvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
-
bool operator>= (AtomicOrderingCABI , AtomicOrderingCABI )Defined at line 40 of file llvm/include/llvm/Support/AtomicOrdering.h
-
bool isNoModRef (ModRefInfo MRI)Defined at line 40 of file llvm/include/llvm/Support/ModRef.h
-
basic_string stripWhitespace (basic_string S)Defined at line 40 of file llvm/unittests/TextAPI/TextStubHelpers.h
-
std::ostream & operator<< (std::ostream & OS, LegalizeActionStep Ty)Defined at line 40 of file llvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
-
void ExpectParseSuccess (StringRef Message, StringRef Input)Checks that the given input can be parsed without error.
Defined at line 40 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool inFunctionScope (CompileUnit & U, unsigned int Idx)Check if the DIE at
is in the scope of a function.
Defined at line 40 of file llvm/lib/DWARFLinker/Classic/DWARFLinkerCompileUnit.cpp
-
uint64_t VarAndRedzoneSize (uint64_t Size, uint64_t Granularity, uint64_t Alignment)We want to add a full redzone after every variable.
The larger the variable Size the larger is the redzone.
The resulting frame size is a multiple of Alignment.
Defined at line 40 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
template <typename DesiredTypeName>StringRef getTypeName ()We provide a function which tries to compute the (demangled) name of a type
statically.
This routine may fail on some platforms or for particularly unusual types.
Do not use it for anything other than logging and debugging aids. It isn't
portable or dependendable in any real sense.
The returned StringRef will point into a static storage duration string.
However, it may not be null terminated and may be some strangely aligned
inner substring of a larger string.
Defined at line 40 of file llvm/include/llvm/Support/TypeName.h
-
void initializeLowerInvokeLegacyPassPass (PassRegistry & )Defined at line 41 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp
-
stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C)Defined at line 41 of file llvm/include/llvm/ADT/StableHashing.h
-
bool operator== (const MemoryBufferRef & LHS, const MemoryBufferRef & RHS)Check pointer identity (not value) of identifier and data.
Defined at line 41 of file llvm/include/llvm/Support/MemoryBufferRef.h
-
bool isPGSOColdCodeOnly (ProfileSummaryInfo * PSI)Defined at line 41 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h
-
bool isPreISelGenericOptimizationHint (unsigned int Opcode)Defined at line 42 of file llvm/include/llvm/CodeGen/TargetOpcodes.h
-
pair fcmpToClassTest (Predicate Pred, const Function & F, Value * LHS, Value * RHS, bool LookThroughSrc)Returns a pair of values, which if passed to llvm.is.fpclass, returns the
same result as an fcmp with the given operands.
If
is true, consider the input value when computing the
mask.
If
is false, ignore the source value (i.e. the first pair
element will always be LHS.
Defined at line 42 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
-
bool isModOrRefSet (ModRefInfo MRI)Defined at line 43 of file llvm/include/llvm/Support/ModRef.h
-
MCTargetStreamer * createX86NullTargetStreamer (MCStreamer & S)Implements X86-only null emission.
Defined at line 43 of file llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h
-
template <typename T>raw_ostream & operator<< (const ColoredRawOstream & OS, T && Value)Defined at line 43 of file llvm/tools/llvm-cov/RenderingSupport.h
-
bool operator< (const ExpansionView & LHS, const ExpansionView & RHS)Defined at line 43 of file llvm/tools/llvm-cov/SourceCoverageView.h
-
template <typename T, typename... Ts>T unwrapOrError (Expected<T> EO, Ts &&... Args)Defined at line 43 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h
-
void write32AArch64Imm (uint8_t * T, uint64_t imm, uint32_t rangeLimit)Defined at line 43 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
-
template <class S1Ty, class S2Ty>bool set_union (S1Ty & S1, const S2Ty & S2)set_union(A, B) - Compute A := A u B, return whether A changed.
Defined at line 43 of file llvm/include/llvm/ADT/SetOperations.h
-
bool operator!= (const Chunk & C1, const Chunk & C2)Operator when populating CurrentChunks in Generic Delta Pass
Defined at line 44 of file llvm/tools/llvm-reduce/deltas/Delta.h
-
template <typename Int>bool isValidAtomicOrderingCABI (Int I)Validate an integral value which isn't known to fit within the enum's range
is a valid AtomicOrderingCABI.
Defined at line 44 of file llvm/include/llvm/Support/AtomicOrdering.h
-
SmallVector getTrackingRegs (const MCRegisterInfo * MCRI)Defined at line 44 of file llvm/lib/DWARFCFIChecker/Registers.h
-
void error (error_code EC)Defined at line 44 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
-
tm getStructTMUtc (time_point TP)Defined at line 44 of file llvm/lib/Support/Chrono.cpp
-
template <typename InfoT>void union_modes (const InfoByHwMode<InfoT> & A, const InfoByHwMode<InfoT> & B, SmallVectorImpl<unsigned int> & Modes)Defined at line 44 of file llvm/utils/TableGen/Common/InfoByHwMode.h
-
void initializeMIRAddFSDiscriminatorsPass (PassRegistry & )Defined at line 45 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp
-
StringRef MCLOHDirectiveName ()Defined at line 45 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
-
template <class ContainerTy, class FuncTy>auto map_to_vector (ContainerTy && C, FuncTy && F)Map a range to a SmallVector with element types deduced from the mapping.
Defined at line 45 of file llvm/include/llvm/ADT/SmallVectorExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const Printable & P)Defined at line 45 of file llvm/include/llvm/Support/Printable.h
-
bool hasAttributeInAssume (AssumeInst & Assume, Value * IsOn, AttrKind Kind, uint64_t * ArgVal)Defined at line 45 of file llvm/include/llvm/Analysis/AssumeBundleQueries.h
-
template <typename T, typename Functor>unsigned int ComputeMappedEditDistance (ArrayRef<T> FromArray, ArrayRef<T> ToArray, Functor Map, bool AllowReplacements, unsigned int MaxEditDistance)Determine the edit distance between two sequences.
Parameters
FromArray the first sequence to compare.ToArray the second sequence to compare.Map A Functor to apply to each item of the sequences before comparison.AllowReplacements whether to allow element replacements (change one element into another) as a single operation, rather than as two operations (an insertion and a removal).MaxEditDistance If non-zero, the maximum edit distance that this routine is allowed to compute. If the edit distance will exceed that maximum, returnsDefined at line 45 of file llvm/include/llvm/ADT/edit_distance.h
-
bool isModAndRefSet (ModRefInfo MRI)Defined at line 46 of file llvm/include/llvm/Support/ModRef.h
-
StringRef toString (TensorType TT)Defined at line 46 of file llvm/lib/Analysis/TensorSpec.cpp
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedAdd (T LHS, T RHS)Add two signed integers
and
Returns
Optional of sum if no signed overflow occurred,
otherwise.
Defined at line 46 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>int checkedAdd (T LHS, T RHS)Add two signed integers
and
Returns
Optional of sum if no signed overflow occurred,
otherwise.
Defined at line 46 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename OStream>OStream & operator<< (OStream & OS, const InterleavedRange<Range> & Interleaved)Defined at line 46 of file llvm/include/llvm/Support/InterleavedRange.h
-
const DagInit * getDagWithSpecificOperator (const Init & N, StringRef Name)A convenience function to check that an Init refers to a dag whose operator
is a specific def and coerce it to a dag if it is. This is primarily useful
for testing for subclasses of GIDefKind and similar in DagInit's since
DagInit's support any type inside them.
Defined at line 46 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h
-
stable_hash stable_hash_combine (stable_hash A, stable_hash B, stable_hash C, stable_hash D)Defined at line 47 of file llvm/include/llvm/ADT/StableHashing.h
-
template <size_t N, class CostType>const CostTblEntryT<CostType> * CostTableLookup (const CostTblEntryT<CostType> (&)[N] Table, int ISD, MVT Ty)Defined at line 47 of file llvm/include/llvm/CodeGen/CostTable.h
-
int getBundleStart (int I)Returns an iterator to the first instruction in the bundle containing
Defined at line 47 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h
-
wrap (Model Model)Defined at line 47 of file llvm/include/llvm/Target/CodeGenCWrappers.h
-
bool printOp (const DWARFExpression::Operation * Op, raw_ostream & OS, DIDumpOptions DumpOpts, const DWARFExpression * Expr, DWARFUnit * U)Defined at line 47 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
bool operator== (const Chunk & C1, const Chunk & C2)Defined at line 48 of file llvm/tools/llvm-reduce/deltas/Delta.h
-
vector toStringRefArray (const char *const * Strings)Given an array of c-style strings terminated by a null pointer, construct
a vector of StringRefs representing the same strings without the terminating
null string.
Defined at line 48 of file llvm/include/llvm/ADT/StringExtras.h
-
bool checkEqualityOnTransform (MachO::InterfaceFile & FileA, MachO::InterfaceFile & FileB, void (*)(MachO::InterfaceFile *) Transform)This will transform a single InterfaceFile then compare against the other
InterfaceFile then transform the second InterfaceFile in the same way to
regain equality.
Defined at line 48 of file llvm/unittests/TextAPI/TextStubHelpers.h
-
template <typename T, typename Callable>TrieNode<T> * mergeTrieNodes (const TrieNode<T> & Left, const TrieNode<T> & Right, std::remove_reference_t<TrieNode<T> *> NewParent, std::forward_list<TrieNode<T>> & NodeStore, Callable && MergeCallable)Merges together two TrieNodes with like function ids, aggregating their
callee lists and durations. The caller must provide storage where new merged
nodes can be allocated in the form of a linked list.
Defined at line 48 of file llvm/tools/llvm-xray/trie-node.h
-
GenericValue PTOGV (void * P)Defined at line 49 of file llvm/include/llvm/ExecutionEngine/GenericValue.h
-
bool isValidMCLOHType (unsigned int Kind)Defined at line 49 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
-
bool isModSet (ModRefInfo MRI)Defined at line 49 of file llvm/include/llvm/Support/ModRef.h
-
raw_ostream & operator<< (raw_ostream & OS, const MCLabel & Label)Defined at line 49 of file llvm/include/llvm/MC/MCLabel.h
-
bool operator!= (const MemoryBufferRef & LHS, const MemoryBufferRef & RHS)Defined at line 49 of file llvm/include/llvm/Support/MemoryBufferRef.h
-
raw_ostream & operator<< (raw_ostream & OS, const CodeExpander & Expander)Defined at line 49 of file llvm/utils/TableGen/Common/GlobalISel/CodeExpander.h
-
void emitWarningSummary (uint64_t Num, uint64_t Total, StringRef Msg)Defined at line 49 of file llvm/include/../tools/llvm-profgen/ErrorHandling.h
-
template <typename... ArgsTy>FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, AttributeList AttributeList, Type * RetTy, ArgsTy... Args)Defined at line 49 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
-
ColoredRawOstream colored_ostream (raw_ostream & OS, Colors Color, bool IsColorUsed, bool Bold, bool BG)Change the color of the output stream if the `IsColorUsed` flag
is true. Returns an object that resets the color when destroyed.
Defined at line 49 of file llvm/tools/llvm-cov/RenderingSupport.h
-
template <typename R, typename... Ts>auto runOnNewStack (unsigned int StackSize, function_ref<R (Ts...)> Fn, Ts &&... Args)Defined at line 49 of file llvm/include/llvm/Support/ProgramStack.h
-
void * GVTOP (const GenericValue & GV)Defined at line 50 of file llvm/include/llvm/ExecutionEngine/GenericValue.h
-
std::tuple<Register, FPClassTest, FPClassTest> fcmpImpliesClass (Predicate Pred, const MachineFunction & MF, Register LHS, Register RHS, bool LookThroughSrc)Compute the possible floating-point classes that
could be based on
fcmp
If the compare returns an exact class test, ClassesIfTrue ==
~ClassesIfFalse
This is a less exact version of fcmpToClassTest (e.g. fcmpToClassTest will
only succeed for a test of x > 0 implies positive, but not x > 1).
If
is true, consider the input value when computing the
mask. This may look through sign bit operations.
If
is false, ignore the source value (i.e. the first
pair element will always be LHS.
Defined at line 50 of file llvm/include/llvm/CodeGen/GlobalISel/MachineFloatingPointPredicateUtils.h
-
uint64_t xxh3_64bits (StringRef data)Defined at line 51 of file llvm/include/llvm/Support/xxhash.h
-
template <typename T>T jitTargetAddressToPointer (JITTargetAddress Addr)Convert a JITTargetAddress to a pointer.
Note: This is a raw cast of the address bit pattern to the given pointer
type. When casting to a function pointer in order to execute JIT'd code
jitTargetAddressToFunction should be preferred, as it will also perform
pointer signing on targets that require it.
Defined at line 51 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h
-
bool isAsynchronousEHPersonality (EHPersonality Pers)Returns true if this personality function catches asynchronous
exceptions.
Defined at line 51 of file llvm/include/llvm/IR/EHPersonalities.h
-
void write32AArch64Ldr (uint8_t * T, uint64_t imm)Defined at line 51 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
-
bool llvm_is_multithreaded ()Returns true if LLVM is compiled with support for multi-threading, and
false otherwise.
Defined at line 52 of file llvm/include/llvm/Support/Threading.h
-
bool operator!= (const MachineLocation & LHS, const MachineLocation & RHS)Defined at line 52 of file llvm/include/llvm/MC/MachineLocation.h
-
bool isRefSet (ModRefInfo MRI)Defined at line 52 of file llvm/include/llvm/Support/ModRef.h
-
void PrintTo (StringRef S, std::ostream * OS)Defined at line 52 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h
-
unsigned int ComputeLinearIndex (Type * Ty, ArrayRef Indices, unsigned int CurIndex)Defined at line 52 of file llvm/include/llvm/CodeGen/Analysis.h
-
bool operator== (const TemporalProfTraceTy & lhs, const TemporalProfTraceTy & rhs)Defined at line 52 of file llvm/unittests/ProfileData/InstrProfTest.cpp
-
void error (Error Err)Defined at line 52 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
-
MCRegister getSuperReg (const MCRegisterInfo * MCRI, MCRegister Reg)Defined at line 52 of file llvm/lib/DWARFCFIChecker/Registers.h
-
StringRef spell (RoundingMode RM)Returns text representation of the given rounding mode.
Defined at line 52 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
void * safe_realloc (void * Ptr, size_t Sz)Defined at line 52 of file llvm/include/llvm/Support/MemAlloc.h
-
template <typename FuncT, typename BFIT>bool shouldFuncOptimizeForSizeImpl (const FuncT * F, ProfileSummaryInfo * PSI, BFIT * BFI, PGSOQueryType QueryType)Defined at line 52 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h
-
unsigned int encodeSLEB128 (int64_t Value, uint8_t * p, unsigned int PadTo)Utility function to encode a SLEB128 value to a buffer. Returns
the length in bytes of the encoded value.
Defined at line 52 of file llvm/include/llvm/Support/LEB128.h
-
template <typename Callable>auto make_scope_exit (Callable && F)Keeps the callable object that is passed in, and execute it at the
destruction of the returned object (usually at the scope exit where the
returned object is kept).
Interface is specified by p0052r2.
Defined at line 53 of file llvm/include/llvm/ADT/ScopeExit.h
-
bool operator< (const Chunk & C1, const Chunk & C2)Operator used for sets
Defined at line 53 of file llvm/tools/llvm-reduce/deltas/Delta.h
-
uint64_t getDebugInfoSize (DWARFContext & Dwarf)Compute the total size of the debug info.
Defined at line 53 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
template <typename DerivedT, typename KeyInfoT, typename BucketT>bool operator== (const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & RHS)Defined at line 53 of file llvm/include/llvm/TextAPI/SymbolSet.h
-
int MCLOHNameToId (StringRef Name)Defined at line 53 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
-
hash_code hash_value (const ArgInfo & A)Defined at line 54 of file llvm/include/llvm/Transforms/Utils/SCCPSolver.h
-
void printAsPrintable (raw_ostream & W, const uint8_t * Start, size_t Len)Defined at line 54 of file llvm/tools/llvm-readobj/ObjDumper.cpp
-
void reduceRegisterMasksMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 63 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterMasks.cpp
-
void reduceSinkDefsToUsesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 55 of file llvm/tools/llvm-reduce/deltas/ReduceSinkDefsToUses.cpp
-
void reduceAtomicSyncScopesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 65 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp
-
void dumpOffloadBinary (const object::ObjectFile & O, StringRef ArchName)Print the embedded offloading contents of an ObjectFile
Defined at line 54 of file llvm/tools/llvm-objdump/OffloadDump.cpp
-
LogicalResult success (bool IsSuccess)Utility function to generate a LogicalResult. If isSuccess is true a
`success` result is generated, otherwise a 'failure' result is generated.
Defined at line 55 of file llvm/include/llvm/Support/LogicalResult.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedSub (T LHS, T RHS)Subtract two signed integers
and
Returns
Optional of sum if no signed overflow occurred,
otherwise.
Defined at line 55 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>int checkedSub (T LHS, T RHS)Subtract two signed integers
and
Returns
Optional of sum if no signed overflow occurred,
otherwise.
Defined at line 55 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
Type * toVectorizedTy (Type * Ty, ElementCount EC)A helper for converting to vectorized types. For scalar types, this is
equivalent to calling `toVectorTy`. For struct types, this returns a new
struct where each element type has been widened to a vector type.
Note:
- If the incoming type is void, we return void
- If
is scalar,
is returned unchanged
- Only unpacked literal struct types are supported
Defined at line 55 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
StringRef get_stable_name (StringRef Name)Removes suffixes introduced by LLVM from the name to enhance stability and
maintain closeness to the original name across different builds.
Defined at line 55 of file llvm/include/llvm/ADT/StableHashing.h
-
bool operator< (const SymbolInfoTy & P1, const SymbolInfoTy & P2)Defined at line 55 of file llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h
-
StringRef toStringRef (bool B)Construct a string ref from a boolean.
Defined at line 56 of file llvm/include/llvm/ADT/StringExtras.h
-
bool hasSingleValue (const ValueLatticeElement & Val)Defined at line 56 of file llvm/lib/Analysis/ValueLattice.cpp
-
bool operator== (const Offset & LHS, const Offset & RHS)Defined at line 57 of file llvm/include/llvm/ADT/StringTable.h
-
bool operator< (const InstantiationView & LHS, const InstantiationView & RHS)Defined at line 57 of file llvm/tools/llvm-cov/SourceCoverageView.h
-
raw_ostream & operator<< (raw_ostream & OS, const MachineConstantPoolValue & V)Defined at line 57 of file llvm/include/llvm/CodeGen/MachineConstantPool.h
-
pair fcmpToClassTest (Predicate Pred, const Function & F, Value * LHS, const APFloat * ConstRHS, bool LookThroughSrc)Returns a pair of values, which if passed to llvm.is.fpclass, returns the
same result as an fcmp with the given operands.
If
is true, consider the input value when computing the
mask.
If
is false, ignore the source value (i.e. the first pair
element will always be LHS.
Defined at line 57 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
-
bool operator< (const Arc & LHS, const Arc & RHS)Defined at line 58 of file llvm/unittests/IR/CFGBuilder.h
-
void reduceRegisterUsesMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 58 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterUses.cpp
-
void reduceNamedMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Remove unneeded arguments to named metadata.
Defined at line 50 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp
-
template <class S1Ty, class S2Ty>void set_intersect (S1Ty & S1, const S2Ty & S2)set_intersect(A, B) - Compute A := A ^ B
Identical to set_intersection, except that it works on set
<
>'s and
is nicer to use. Functionally, this iterates through S1, removing
elements that are not contained in S2.
Defined at line 58 of file llvm/include/llvm/ADT/SetOperations.h
-
uint64_t writeMemProfFrames (ProfOStream & OS, llvm::MapVector<memprof::FrameId, memprof::Frame> & MemProfFrameData)Serialize MemProfFrameData. Return FrameTableOffset.
Defined at line 58 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
StringRef toStringRef (ArrayRef Input)Construct a string ref from an array ref of unsigned chars.
Defined at line 59 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename... ArgsTy>FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, Type * RetTy, ArgsTy... Args)Same as above, but without the attributes.
Defined at line 59 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
-
template <typename T>T unwrapOrError (Expected<T> EO)Defined at line 60 of file llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
-
error_code disableAutoConversion (int FD)Defined at line 60 of file llvm/include/llvm/Support/AutoConvert.h
-
const DagInit * getDagWithOperatorOfSubClass (const Init & N, StringRef Cls)A convenience function to check that an Init refers to a dag whose operator
is a def that is a subclass of the given class and coerce it to a dag if it
is. This is primarily useful for testing for subclasses of GIDefKind and
similar in DagInit's since DagInit's support any type inside them.
Defined at line 60 of file llvm/utils/TableGen/Common/../Common/GlobalISel/CombinerUtils.h
-
bool operator!= (const Offset & LHS, const Offset & RHS)Defined at line 61 of file llvm/include/llvm/ADT/StringTable.h
-
LogicalResult failure (bool IsFailure)Utility function to generate a LogicalResult. If isFailure is true a
`failure` result is generated, otherwise a 'success' result is generated.
Defined at line 61 of file llvm/include/llvm/Support/LogicalResult.h
-
bool operator== (const Range & L, const Range & R)Defined at line 61 of file llvm/include/llvm/Testing/Annotations/Annotations.h
-
template <unsigned N>void PrintTo (const SmallString<N> & S, std::ostream * OS)We need both SmallString
<N
> and SmallVectorImpl
<char
> overloads:
- the SmallString
<N
> template is needed as overload resolution will
instantiate generic PrintTo
<T
> rather than do derived-to-base conversion
- but SmallVectorImpl
<char
> is sometimes the actual static type, in code
that erases the small size
Defined at line 61 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h
-
StringRef toStringRef (ArrayRef Input)Defined at line 62 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename T>T jitTargetAddressToFunction (JITTargetAddress Addr)Convert a JITTargetAddress to a callable function pointer.
Casts the given address to a callable function pointer. This operation
will perform pointer signing for platforms that require it (e.g. arm64e).
Defined at line 62 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h
-
error_code make_error_code (cgdata_error E)Defined at line 63 of file llvm/include/llvm/CGData/CodeGenData.h
-
basic_string buildIDToString (ArrayRef ID)Returns a binary BuildID as a normalized hex string.
Uses lowercase for compatibility with common debuginfod servers.
Defined at line 63 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void InitializeAllTargetInfos ()InitializeAllTargetInfos - The main program should call this function if
it wants access to all available targets that LLVM is configured to
support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 63 of file llvm/include/llvm/Support/TargetSelect.h
-
int getBundleEnd (int I)Returns an iterator pointing beyond the bundle containing
Defined at line 63 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h
-
CompileUnit * getUnitForOffset (const UnitListTy & Units, uint64_t Offset)Similar to DWARFUnitSection::getUnitForOffset(), but returning our
CompileUnit object instead.
Defined at line 63 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool operator!= (const Range & L, const Range & R)Defined at line 64 of file llvm/include/llvm/Testing/Annotations/Annotations.h
-
void PrintTo (const SmallVectorImpl<char> & S, std::ostream * OS)Defined at line 64 of file third-party/unittest/googletest/include/gtest/internal/custom/gtest-printers.h
-
raw_ostream & operator<< (raw_ostream & OS, RoundingMode RM)Defined at line 64 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedMul (T LHS, T RHS)Multiply two signed integers
and
Returns
Optional of product if no signed overflow occurred,
otherwise.
Defined at line 64 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>int checkedMul (T LHS, T RHS)Multiply two signed integers
and
Returns
Optional of product if no signed overflow occurred,
otherwise.
Defined at line 64 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, FPClassTest RHSClass, bool LookThroughSrc)Defined at line 64 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
-
unsigned int getFCmpCode (Predicate CC)Similar to getICmpCode but for FCmpInst. This encodes a fcmp predicate
into a four bit mask.
Defined at line 64 of file llvm/include/llvm/Analysis/CmpInstAnalysis.h
-
Type * toScalarizedTy (Type * Ty)A helper for converting vectorized types to scalarized (non-vector) types.
For vector types, this is equivalent to calling .getScalarType(). For struct
types, this returns a new struct where each element type has been converted
to a scalar type. Note: Only unpacked literal struct types are supported.
Defined at line 65 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
Instruction & GetInstByName (Function & F, StringRef Name)Defined at line 65 of file llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
-
void write32AArch64Addr (void * T, uint64_t s, uint64_t p, int shift)Defined at line 65 of file llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h
-
template <class CostType>const TypeConversionCostTblEntryT<CostType> * ConvertCostTableLookup (ArrayRef<TypeConversionCostTblEntryT<CostType>> Tbl, int ISD, MVT Dst, MVT Src)Find in type conversion cost table.
Defined at line 65 of file llvm/include/llvm/CodeGen/CostTable.h
-
template <typename... ArgsTy>FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, AttributeList AttributeList, FunctionType * Invalid, ArgsTy... Args)Avoid an incorrect ordering that'd otherwise compile incorrectly.
Defined at line 66 of file llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
-
bool isFuncletEHPersonality (EHPersonality Pers)Returns true if this is a personality function that invokes
handler funclets (which must return to it).
Defined at line 66 of file llvm/include/llvm/IR/EHPersonalities.h
-
bool succeeded (LogicalResult Result)Utility function that returns true if the provided LogicalResult corresponds
to a success value.
Defined at line 67 of file llvm/include/llvm/Support/LogicalResult.h
-
bool operator< (AtomicOrdering , AtomicOrdering )Defined at line 68 of file llvm/include/llvm/Support/AtomicOrdering.h
-
bool isDefaultFPEnvironment (ExceptionBehavior EB, RoundingMode RM)Returns true if the exception handling behavior and rounding mode
match what is used in the default floating point environment.
Defined at line 68 of file llvm/include/llvm/IR/FPEnv.h
-
error_code make_error_code (sampleprof_error E)Defined at line 68 of file llvm/include/llvm/ProfileData/SampleProf.h
-
bool operator== (const SMTSort & LHS, const SMTSort & RHS)Defined at line 68 of file llvm/include/llvm/Support/SMTAPI.h
-
void reduceConditionalsTrueDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 68 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp
-
template <typename T>ErrorOr<T> expectedToErrorOrAndEmitErrors (LLVMContext & Ctx, Expected<T> Val)Defined at line 68 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
template <typename DerivedT, typename KeyInfoT, typename BucketT>bool operator!= (const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, SymbolsMapKey, MachO::Symbol *, KeyInfoT, BucketT> & RHS)Defined at line 68 of file llvm/include/llvm/TextAPI/SymbolSet.h
-
error_code enableAutoConversion (int FD)Defined at line 68 of file llvm/include/llvm/Support/AutoConvert.h
-
template <class CharT = uint8_t>ArrayRef<CharT> arrayRefFromStringRef (StringRef Input)Construct a string ref from an array ref of unsigned chars.
Defined at line 68 of file llvm/include/llvm/ADT/StringExtras.h
-
template <class PassName>Pass * callDefaultCtor ()Defined at line 68 of file llvm/include/llvm/PassSupport.h
-
StringRef MCLOHIdToName (MCLOHType Kind)Defined at line 68 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
-
const char * toString (DWARFSectionKind Kind)Defined at line 68 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h
-
bool operator> (AtomicOrdering , AtomicOrdering )Defined at line 69 of file llvm/include/llvm/Support/AtomicOrdering.h
-
Comdat * unwrap (LLVMComdatRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 70 of file llvm/include/llvm/IR/Comdat.h
-
LLVMComdatRef wrap (const Comdat * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 70 of file llvm/include/llvm/IR/Comdat.h
-
bool operator<= (AtomicOrdering , AtomicOrdering )Defined at line 70 of file llvm/include/llvm/Support/AtomicOrdering.h
-
template <class T>iterator_range<T> make_range (T x, T y)Convenience function for iterating over sub-ranges.
This provides a bit of syntactic sugar to make using sub-ranges
in for loops a bit easier. Analogous to std::make_pair().
Defined at line 70 of file llvm/include/llvm/ADT/iterator_range.h
-
template <typename T>JITTargetAddress pointerToJITTargetAddress (T * Ptr)Convert a pointer to a JITTargetAddress.
Defined at line 70 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h
-
bool operator>= (AtomicOrdering , AtomicOrdering )Defined at line 71 of file llvm/include/llvm/Support/AtomicOrdering.h
-
bool failed (LogicalResult Result)Utility function that returns true if the provided LogicalResult corresponds
to a failure value.
Defined at line 71 of file llvm/include/llvm/Support/LogicalResult.h
-
stable_hash stable_hash_name (StringRef Name)Generates a consistent hash value for a given input name across different
program executions and environments. This function first converts the input
name into a stable form using the `get_stable_name` function, and then
computes a hash of this stable name. For instance, `foo.llvm.1234` would have
the same hash as `foo.llvm.5678.
Defined at line 71 of file llvm/include/llvm/ADT/StableHashing.h
-
tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, const APFloat & ConstRHS, bool LookThroughSrc)Defined at line 71 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
-
raw_ostream & operator<< (raw_ostream & OS, const Comdat & C)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 72 of file llvm/include/llvm/IR/Comdat.h
-
sampleprof_error mergeSampleProfErrors (sampleprof_error & Accumulator, sampleprof_error Result)Defined at line 72 of file llvm/include/llvm/ProfileData/SampleProf.h
-
void initializeTestPassPass (PassRegistry & )Defined at line 260 of file llvm/unittests/MI/LiveIntervalTest.cpp
-
void reduceInlineCallSitesDeltaPass (Oracle & O, ReducerWorkItem & Program)Defined at line 98 of file llvm/tools/llvm-reduce/deltas/ReduceInlineCallSites.cpp
-
void reduceOpcodesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 242 of file llvm/tools/llvm-reduce/deltas/ReduceOpcodes.cpp
-
void reduceOperandsOneDeltaPass (Oracle & , ReducerWorkItem & )Defined at line 89 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
-
void reduceOperandsSkipDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 195 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsSkip.cpp
-
void reduceOperandsToArgsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 208 of file llvm/tools/llvm-reduce/deltas/ReduceOperandsToArgs.cpp
-
void reduceArgumentsToReturnDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 235 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp
-
error_code mapLastWindowsError ()Defined at line of file
-
void reduceOperandsZeroDeltaPass (Oracle & , ReducerWorkItem & )Defined at line 127 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
-
void reduceInstructionsToReturnDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 252 of file llvm/tools/llvm-reduce/deltas/ReduceValuesToReturn.cpp
-
error_code mapWindowsError (unsigned int EV)Defined at line of file
-
void reduceAtomicOrderingDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 94 of file llvm/tools/llvm-reduce/deltas/ReduceMemoryOperations.cpp
-
void reduceOperandsNaNDeltaPass (Oracle & , ReducerWorkItem & )Defined at line 155 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
-
void dumpOffloadSections (const object::OffloadBinary & OB)Print the contents of an offload binary file
This may contain
multiple binaries stored in the same buffer.
Defined at line 121 of file llvm/tools/llvm-objdump/OffloadDump.cpp
-
void reduceOperandsPoisonDeltaPass (Oracle & , ReducerWorkItem & )Defined at line 178 of file llvm/tools/llvm-reduce/deltas/ReduceOperands.cpp
-
void reduceBasicBlocksDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes out-of-chunk arguments from functions, and modifies their calls
accordingly. It also removes allocations of out-of-chunk arguments.
Defined at line 143 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
-
void reduceArgumentsDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes out-of-chunk arguments from functions, and modifies their calls
accordingly. It also removes allocations of out-of-chunk arguments.
Defined at line 115 of file llvm/tools/llvm-reduce/deltas/ReduceArguments.cpp
-
void reduceAttributesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes out-of-chunk attributes from module.
Defined at line 152 of file llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp
-
void reduceDIMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 77 of file llvm/tools/llvm-reduce/deltas/ReduceDIMetadata.cpp
-
void reduceDistinctMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 117 of file llvm/tools/llvm-reduce/deltas/ReduceDistinctMetadata.cpp
-
void reduceInstructionsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 151 of file llvm/tools/llvm-reduce/deltas/ReduceInstructionsMIR.cpp
-
void reduceMetadataDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes all the Named and Unnamed Metadata Nodes, as well as any debug
functions that aren't inside the desired Chunks.
Defined at line 79 of file llvm/tools/llvm-reduce/deltas/ReduceMetadata.cpp
-
void reduceOperandBundesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Removes out-of-chunk operand bundles from calls.
Defined at line 104 of file llvm/tools/llvm-reduce/deltas/ReduceOperandBundles.cpp
-
void reduceRegisterDefsMIRDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 113 of file llvm/tools/llvm-reduce/deltas/ReduceRegisterDefs.cpp
-
void reduceUnreachableBasicBlocksDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 192 of file llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
-
void printDeltaPasses (raw_ostream & OS)Defined at line 133 of file llvm/tools/llvm-reduce/DeltaManager.cpp
-
int dlltoolDriverMain (ArrayRef<const char *> ArgsArr)Defined at line 301 of file llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
-
int libDriverMain (ArrayRef ARgs)Defined at line 316 of file llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp
-
bool canPeel (const Loop * L)Check whether we are capable of peeling this loop.
Defined at line 95 of file llvm/lib/Transforms/Utils/LoopPeel.cpp
-
void initDebugCounterOptions ()These are invoked internally before parsing command line options.
This enables lazy-initialization of all the globals in libSupport, instead
of eagerly loading everything on program startup.
Defined at line 179 of file llvm/lib/Support/DebugCounter.cpp
-
void runDeltaPasses (TestRunner & Tester, int MaxPassIterations)Defined at line 176 of file llvm/tools/llvm-reduce/DeltaManager.cpp
-
void reduceConditionalsFalseDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Defined at line 73 of file llvm/tools/llvm-reduce/deltas/ReduceUsingSimplifyCFG.cpp
-
Value * emitAMDGPUPrintfCall (IRBuilder<> & Builder, ArrayRef Args, bool isBuffered)Defined at line 426 of file llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
-
bool EmitAnyX86InstComments (const MCInst * MI, raw_ostream & OS, const MCInstrInfo & MCII)EmitAnyX86InstComments - This function decodes x86 instructions and prints
newline terminated strings to the specified string if desired. This
information is shown in disassembly dumps when verbose assembly is enabled.
Defined at line 1069 of file llvm/lib/Target/X86/MCTargetDesc/X86InstComments.cpp
-
void dumpOffloadBundleFatBinary (const object::ObjectFile & O, StringRef ArchName)Dump fat binary in binary clang-offload-bundler format
Defined at line 77 of file llvm/tools/llvm-objdump/OffloadDump.cpp
-
uint32_t crc32 (ArrayRef Data)Compute the CRC-32 of Data.
Defined at line 101 of file llvm/lib/Support/CRC.cpp
-
void initGraphWriterOptions ()Defined at line 53 of file llvm/lib/Support/GraphWriter.cpp
-
bool RetCC_X86 (unsigned int ValNo, MVT ValVT, MVT LocVT, LocInfo LocInfo, ArgFlagsTy ArgFlags, Type * OrigTy, CCState & State)Defined at line of file
-
void initializeCore (PassRegistry & )Initialize all passes linked into the Core library.
Defined at line 59 of file llvm/lib/IR/Core.cpp
-
void initSignalsOptions ()Defined at line 64 of file llvm/lib/Support/Signals.cpp
-
void linkAllBuiltinGCs ()Ensure the definition of the builtin GCs gets linked in
Defined at line 132 of file llvm/lib/IR/BuiltinGCs.cpp
-
size_t getDefaultPrecision (FloatStyle Style)Defined at line 254 of file llvm/lib/Support/NativeFormatting.cpp
-
void PrintNote (const Twine & Msg)Functions to print notes.
Defined at line 52 of file llvm/lib/TableGen/Error.cpp
-
Pass * createLoadStoreVectorizerPass ()Create a legacy pass manager instance of the LoadStoreVectorizer pass
Defined at line 419 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
-
void initStatisticOptions ()Defined at line 49 of file llvm/lib/Support/Statistic.cpp
-
KnownBits computeKnownBits (const Value * V, const SimplifyQuery & Q, unsigned int Depth)Determine which bits of V are known to be either zero or one and return
them.
Defined at line 2381 of file llvm/lib/Analysis/ValueTracking.cpp
-
void sortBasicBlocksAndUpdateBranches (MachineFunction & MF, MachineBasicBlockComparator MBBCmp)Defined at line 313 of file llvm/lib/CodeGen/BasicBlockSections.cpp
-
bool optimizeGlobalCtorsList (Module & M, function_ref ShouldRemove)Call "ShouldRemove" for every entry in M's global_ctor list and remove the
entries for which it returns true. Return true if anything changed.
Defined at line 110 of file llvm/lib/Transforms/Utils/CtorUtils.cpp
-
FunctionPass * createRegionViewerPass ()Defined at line 203 of file llvm/lib/Analysis/RegionPrinter.cpp
-
stable_hash stableHashValue (const MachineOperand & MO)Defined at line 59 of file llvm/lib/CodeGen/MachineStableHash.cpp
-
void describeFuzzerIntOps (int & Ops)Getters for the default sets of operations, per general category.
@
{
Defined at line of file
-
void PrintNote (function_ref PrintMsg)Defined at line 54 of file llvm/lib/TableGen/Error.cpp
-
template <>void invalidateParentIListOrdering<llvm::BasicBlock> (BasicBlock * BB)Defined at line 135 of file llvm/lib/IR/BasicBlock.cpp
-
void initTimerOptions ()Defined at line 569 of file llvm/lib/Support/Timer.cpp
-
void reportError (Error Err, StringRef Input)Various helper functions.
Defined at line 190 of file llvm/tools/llvm-readobj/llvm-readobj.cpp
-
void reduceIRBlockReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Remove IR BasicBlock references (the block names)
Defined at line 47 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp
-
bool lowerConstantIntrinsics (Function & F, const TargetLibraryInfo & TLI, DominatorTree * DT)Defined at line 101 of file llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
-
int createX86MacroFusionDAGMutation ()Note that you have to add:
DAG.addMutation(createX86MacroFusionDAGMutation());
to X86TargetMachine::createMachineScheduler() to have an effect.
Defined at line 70 of file llvm/lib/Target/X86/X86MacroFusion.cpp
-
void DecodePSHUFBMask (const Constant * C, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)Decode a PSHUFB mask from an IR-level vector constant.
Defined at line 116 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
-
void getAddressSanitizerParams (const Triple & TargetTriple, int LongSize, bool IsKasan, uint64_t * ShadowBase, int * MappingScale, bool * OrShadowOffset)Get AddressSanitizer parameters.
Defined at line 626 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
-
FunctionPass * createRegionOnlyViewerPass ()Defined at line 207 of file llvm/lib/Analysis/RegionPrinter.cpp
-
void describeFuzzerFloatOps (int & Ops)Defined at line of file
-
void describeFuzzerFloatOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 45 of file llvm/lib/FuzzMutate/Operations.cpp
-
uint32_t crc32 (uint32_t CRC, ArrayRef Data)Compute the running CRC-32 of Data, with CRC being the previous value of the
checksum.
Defined at line 87 of file llvm/lib/Support/CRC.cpp
-
bool isPrefixedHexStyle (HexPrintStyle S)Defined at line 250 of file llvm/lib/Support/NativeFormatting.cpp
-
void EnablePrettyStackTrace ()Enables dumping a "pretty" stack trace when the program crashes.
Defined at line 291 of file llvm/lib/Support/PrettyStackTrace.cpp
-
void PrintNote (ArrayRef NoteLoc, const Twine & Msg)Defined at line 58 of file llvm/lib/TableGen/Error.cpp
-
bool canPeelLastIteration (const Loop & L, ScalarEvolution & SE)Returns true if the last iteration of
can be peeled off. It makes sure
the loop exit condition can be adjusted when peeling and that the loop
executes at least 2 iterations.
Defined at line 479 of file llvm/lib/Transforms/Utils/LoopPeel.cpp
-
void reportWarning (Error Err, StringRef Input)Defined at line 199 of file llvm/tools/llvm-readobj/llvm-readobj.cpp
-
void updateCompilerUsed (Module & TheModule, const TargetMachine & TM, const StringSet<> & AsmUndefinedRefs)Find all globals in
that are referenced in
as well as the user-supplied functions definitions that
are also libcalls, and create or update the magic "llvm.compiler_used"
global in
Defined at line of file
-
void updateCompilerUsed (Module & TheModule, const TargetMachine & TM, const int & AsmUndefinedRefs)Find all globals in
that are referenced in
as well as the user-supplied functions definitions that
are also libcalls, and create or update the magic "llvm.compiler_used"
global in
Defined at line 123 of file llvm/lib/LTO/UpdateCompilerUsed.cpp
-
stable_hash stableHashValue (const MachineInstr & MI, bool HashVRegs, bool HashConstantPoolIndices, bool HashMemOperands)A stable hash value for machine instructions.
Returns 0 if no stable hash could be computed.
The hashing and equality testing functions ignore definitions so this is
useful for CSE, etc.
Defined at line 192 of file llvm/lib/CodeGen/MachineStableHash.cpp
-
FunctionPass * createLazyValueInfoPass ()===--------------------------------------------------------------------===//
createLazyValueInfoPass - This creates an instance of the LazyValueInfo
pass.
Defined at line 68 of file llvm/lib/Analysis/LazyValueInfo.cpp
-
FunctionPass * createRegionPrinterPass ()Defined at line 197 of file llvm/lib/Analysis/RegionPrinter.cpp
-
void avoidZeroOffsetLandingPad (MachineFunction & MF)If the exception section begins with a landing pad, that landing pad will
assume a zero offset (relative to
) in the LSDA. However, a value of
zero implies "no landing pad." This function inserts a NOP just before the EH
pad label to ensure a nonzero offset.
Defined at line 338 of file llvm/lib/CodeGen/BasicBlockSections.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const PseudoSourceValue * PSV)Defined at line 1052 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
-
void linkOcamlGCPrinter ()Creates an ocaml-compatible metadata printer.
Defined at line 49 of file llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp
-
Pass * createObjCARCContractPass ()===----------------------------------------------------------------------===//
ObjCARCContract - Late ObjC ARC cleanups.
Defined at line 765 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
-
void initDebugOptions ()Defined at line 189 of file llvm/lib/Support/Debug.cpp
-
void initializePassTest1Pass (PassRegistry & )Defined at line of file
-
void initializePass1Pass (PassRegistry & )Defined at line 60 of file llvm/unittests/IR/TimePassesTest.cpp
-
void describeFuzzerControlFlowOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 75 of file llvm/lib/FuzzMutate/Operations.cpp
-
void describeFuzzerControlFlowOps (int & Ops)Defined at line of file
-
FunctionPass * createRegionOnlyPrinterPass ()Defined at line 199 of file llvm/lib/Analysis/RegionPrinter.cpp
-
void verifySafepointIR (Function & F)Run the safepoint verifier over a single function. Crashes on failure.
Defined at line 233 of file llvm/lib/IR/SafepointIRVerifier.cpp
-
void PrintFatalNote (const Twine & Msg)Functions to print fatal notes.
Defined at line 64 of file llvm/lib/TableGen/Error.cpp
-
ModulePass * createDeadArgEliminationPass ()This pass removes arguments from functions which are not used by the body of
the function.
Defined at line 118 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
-
void reduceIRFunctionReferencesDeltaPass (Oracle & O, ReducerWorkItem & WorkItem)Remove IR references from function level fields (e.g. frame object names)
Defined at line 59 of file llvm/tools/llvm-reduce/deltas/ReduceIRReferences.cpp
-
void initializeAATestPassPass (PassRegistry & )Defined at line 70 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp
-
void initializePass2Pass (PassRegistry & )Defined at line 61 of file llvm/unittests/IR/TimePassesTest.cpp
-
void initializeDebugInfoDropPass (PassRegistry & )Defined at line 253 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp
-
void write_integer (raw_ostream & S, unsigned int N, size_t MinDigits, IntegerStyle Style)Defined at line 104 of file llvm/lib/Support/NativeFormatting.cpp
-
void finalizeBundle (MachineBasicBlock & MBB, int FirstMI, int LastMI)finalizeBundle - Finalize a machine instruction bundle which includes
a sequence of instructions starting from FirstMI to LastMI (exclusive).
This routine adds a BUNDLE instruction to represent the bundle, it adds
IsInternalRead markers to MachineOperands which are defined inside the
bundle, and it copies externally visible defs and uses to the BUNDLE
instruction.
Defined at line 125 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
uint64_t getMaxFreq (const Function & F, const BlockFrequencyInfo * BFI)Returns the maximum frequency of a BB in a function.
Defined at line 49 of file llvm/lib/Analysis/HeatUtils.cpp
-
uint32_t caseFoldingDjbHash (StringRef Buffer, uint32_t H)Computes the Bernstein hash after folding the input according to the Dwarf 5
standard case folding rules.
Defined at line 72 of file llvm/lib/Support/DJB.cpp
-
void PrintFatalNote (ArrayRef ErrorLoc, const Twine & Msg)Defined at line 69 of file llvm/lib/TableGen/Error.cpp
-
FunctionPass * createLowerInvokePass ()Public Interface To the LowerInvoke pass.
Defined at line 84 of file llvm/lib/Transforms/Utils/LowerInvoke.cpp
-
basic_string filterCppOutput (StringRef Input)Defined at line 109 of file llvm/tools/llvm-rc/ResourceScriptCppFilter.cpp
-
void initializeTestCustomAAWrapperPassPass (PassRegistry & )Defined at line 135 of file llvm/unittests/Analysis/AliasAnalysisTest.cpp
-
void initializeDebugInfoDummyAnalysisPass (PassRegistry & )Defined at line 258 of file llvm/unittests/Transforms/Utils/DebugifyTest.cpp
-
void describeFuzzerPointerOps (int & Ops)Defined at line of file
-
void describeFuzzerPointerOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 84 of file llvm/lib/FuzzMutate/Operations.cpp
-
void DecodeVPERMILPMask (const Constant * C, unsigned int ElSize, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)Decode a VPERMILP variable mask from an IR-level vector constant.
Defined at line 154 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
-
ModulePass * createPrintModulePass (raw_ostream & OS, const std::string & Banner, bool ShouldPreserveUseListOrder)Create and return a pass that writes the module to the specified
Defined at line 113 of file llvm/lib/IR/IRPrintingPasses.cpp
-
stable_hash stableHashValue (const MachineBasicBlock & MBB)Defined at line 232 of file llvm/lib/CodeGen/MachineStableHash.cpp
-
void linkErlangGCPrinter ()Creates an erlang-compatible metadata printer.
Defined at line 117 of file llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp
-
void PrintFatalNote (const Record * Rec, const Twine & Msg)This method takes a Record and uses the source location
stored in it.
Defined at line 76 of file llvm/lib/TableGen/Error.cpp
-
void write_integer (raw_ostream & S, int N, size_t MinDigits, IntegerStyle Style)Defined at line 109 of file llvm/lib/Support/NativeFormatting.cpp
-
void simpleSimplifyCFG (Function & F, ArrayRef<BasicBlock *> BBs, bool FoldBlockIntoPredecessor)Constant fold terminators in
minimally prune unreachable code from the
function.
Defined at line 47 of file llvm/tools/llvm-reduce/deltas/Utils.cpp
-
VPExpansionDetails expandVectorPredicationIntrinsic (VPIntrinsic & VPI, const TargetTransformInfo & TTI)Expand a vector predication intrinsic. Returns the kind of expansion
that was applied to the intrinsic.
Defined at line 713 of file llvm/lib/CodeGen/ExpandVectorPredication.cpp
-
bool isSafeToMoveBefore (Instruction & I, Instruction & InsertPoint, DominatorTree & DT, const PostDominatorTree * PDT, DependenceInfo * DI, bool CheckForEntireBlock)Return true if
can be safely moved before
Defined at line 272 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
void lintModule (const Module & M, bool AbortOnError)Lint a module.
This should only be used for debugging, because it plays games with
PassManagers and stuff.
Defined at line 770 of file llvm/lib/Analysis/Lint.cpp
-
stable_hash stableHashValue (const MachineFunction & MF)Defined at line 240 of file llvm/lib/CodeGen/MachineStableHash.cpp
-
void PrintFatalNote (const RecordVal * RecVal, const Twine & Msg)This method takes a RecordVal and uses the source location
stored in it.
Defined at line 83 of file llvm/lib/TableGen/Error.cpp
-
bool isAllocaPromotable (const AllocaInst * AI)Return true if this alloca is legal for promotion.
This is true if there are only loads, stores, and lifetime markers
(transitively) using this alloca. This also enforces that there is only
ever one layer of bitcasts or GEPs between the alloca and the lifetime
markers.
Defined at line 66 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
-
void describeFuzzerAggregateOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 88 of file llvm/lib/FuzzMutate/Operations.cpp
-
void describeFuzzerAggregateOps (int & Ops)Defined at line of file
-
MemoryEffectsBase computeFunctionBodyMemoryAccess (Function & F, AAResults & AAR)Returns the memory access properties of this copy of the function.
Defined at line 267 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp
-
bool inferNonMandatoryLibFuncAttrs (Module * M, StringRef Name, const TargetLibraryInfo & TLI)Analyze the name and prototype of the given function and set any
applicable attributes. Note that this merely helps optimizations on an
already existing function but does not consider mandatory attributes.
If the library function is unavailable, this doesn't modify it.
Returns true if any attributes were set and false otherwise.
Defined at line 306 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
ModulePass * createBitcodeWriterPass (raw_ostream & Str, bool ShouldPreserveUseListOrder)Create and return a pass that writes the module to the specified
ostream. Note that this pass is designed for use with the legacy pass
manager.
If
encode use-list order so it can be
reproduced when deserialized.
Defined at line 72 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
-
MachineUniformityInfo computeMachineUniformityInfo (MachineFunction & F, const MachineCycleInfo & cycleInfo, const MachineDominatorTree & domTree, bool HasBranchDivergence)Compute uniformity information for a Machine IR function.
If
is false, produces a dummy result which assumes
everything is uniform.
Defined at line 160 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
-
basic_string getHeatColor (uint64_t Freq, uint64_t MaxFreq)Calculates heat color based on current and maximum frequencies.
Defined at line 59 of file llvm/lib/Analysis/HeatUtils.cpp
-
int & getKnownAssumptionStrings ()A set of known assumption strings that are accepted without warning and
which can be recommended as typo correction.
Defined at line 102 of file llvm/lib/IR/Assumptions.cpp
-
FunctionPass * createSafepointIRVerifierPass ()Create an instance of the safepoint verifier pass which can be added to
a pass pipeline to check for relocation bugs.
Defined at line 240 of file llvm/lib/IR/SafepointIRVerifier.cpp
-
FunctionPass * createCFGuardCheckPass ()Insert Control FLow Guard checks on indirect function calls.
Defined at line 308 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp
-
stable_hash StructuralHash (const Function & F, bool DetailedHash)Returns a hash of the function
Parameters
F The function to hash.DetailedHash Whether or not to encode additional information in the hash. The additional information added into the hash when this flag is set to true includes instruction and operand type information.Defined at line 329 of file llvm/lib/IR/StructuralHash.cpp
-
void write_integer (raw_ostream & S, unsigned long N, size_t MinDigits, IntegerStyle Style)Defined at line 114 of file llvm/lib/Support/NativeFormatting.cpp
-
void printDwarfExpression (const DWARFExpression * E, raw_ostream & OS, DIDumpOptions DumpOpts, DWARFUnit * U, bool IsEH)Print a Dwarf expression/
Parameters
E to be printedOS to this streamGetNameForDWARFReg callback to return dwarf register nameDefined at line 166 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
int DiffFilesWithTolerance (StringRef FileA, StringRef FileB, double AbsTol, double RelTol, std::string * Error)DiffFilesWithTolerance - Compare the two files specified, returning 0 if
the files match, 1 if they are different, and 2 if there is a file error.
This function allows you to specify an absolute and relative FP error that
is allowed to exist. If you specify a string to fill in for the error
option, it will set the string to an error message if an error occurs, or
if the files are different.
Defined at line 178 of file llvm/lib/Support/FileUtilities.cpp
-
bool peelLoop (Loop * L, unsigned int PeelCount, bool PeelLast, LoopInfo * LI, ScalarEvolution * SE, DominatorTree & DT, AssumptionCache * AC, bool PreserveLCSSA, int & VMap)VMap is the value-map that maps instructions from the original loop to
instructions in the last peeled-off iteration. If
is true, peel
off the last
iterations from
(canPeelLastIteration must be
true for
otherwise peel off the first
iterations.
Defined at line of file
-
bool peelLoop (Loop * L, unsigned int PeelCount, bool PeelLast, LoopInfo * LI, ScalarEvolution * SE, DominatorTree & DT, AssumptionCache * AC, bool PreserveLCSSA, ValueToValueMapTy & VMap)Peel off the first
iterations of loop
Note that this does not peel them off as a single straight-line block.
Rather, each iteration is peeled off separately, and needs to check the
exit condition.
For loops that dynamically execute
iterations or less
this provides a benefit, since the peeled off iterations, which account
for the bulk of dynamic execution, can be further simplified by scalar
optimizations.
Defined at line 1102 of file llvm/lib/Transforms/Utils/LoopPeel.cpp
-
void findArrayDimensions (ScalarEvolution & SE, SmallVectorImpl<const SCEV *> & Terms, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)Compute the array dimensions Sizes from the set of Terms extracted from
the memory access function of this SCEVAddRecExpr (second step of
delinearization).
Defined at line 282 of file llvm/lib/Analysis/Delinearization.cpp
-
MVT getMVTForLLT (LLT Ty)Get a rough equivalent of an MVT for a given LLT. MVT can't distinguish
pointers, so these will convert to a plain integer.
Defined at line 48 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp
-
void describeFuzzerVectorOps (int & Ops)Defined at line of file
-
void describeFuzzerVectorOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 94 of file llvm/lib/FuzzMutate/Operations.cpp
-
bool shouldPrintBeforeSomePass ()Returns true if printing before/after some pass is enabled, whether all
passes or a specific pass.
Defined at line 115 of file llvm/lib/IR/PrintPasses.cpp
-
void PrintWarning (const Twine & Msg)Functions to print warnings.
Defined at line 90 of file llvm/lib/TableGen/Error.cpp
-
ModulePass * createDeadArgHackingPass ()DeadArgHacking pass - Same as DAE, but delete arguments of external
functions as well. This is definitely not safe, and should only be used by
bugpoint.
Defined at line 120 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
-
void removeASanIncompatibleFnAttributes (Function & F, bool ReadsArgMem)Remove memory attributes that are incompatible with the instrumentation
added by AddressSanitizer and HWAddressSanitizer.
- indicates whether function arguments may be read by
instrumentation and require removing `writeonly` attributes.
Defined at line 635 of file llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
-
FunctionPass * createDeadCodeEliminationPass ()===----------------------------------------------------------------------===//
DeadCodeElimination - This pass is more powerful than DeadInstElimination,
because it is worklist driven that can potentially revisit instructions when
their other instructions become dead, to eliminate chains of dead
computations.
Defined at line 145 of file llvm/lib/Transforms/Scalar/DCE.cpp
-
bool expandRemainder (BinaryOperator * Rem)Generate code to calculate the remainder of two integers, replacing Rem
with the generated code. This currently generates code using the udiv
expansion, but future work includes generating more specialized code,
e.g. when more information about the operands are known. Implements both
32bit and 64bit scalar division.
Replace Rem with generated code.
Defined at line 354 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
void __register_frame (void * )Defined at line of file
-
FunctionPass * createX86ISelDag (X86TargetMachine & TM, CodeGenOptLevel OptLevel)This pass converts a legalized DAG into a X86-specific DAG,
ready for instruction scheduling.
Defined at line 6746 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
-
bool inferNonMandatoryLibFuncAttrs (Function & F, const TargetLibraryInfo & TLI)Defined at line 314 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void DecodeVPERMIL2PMask (const Constant * C, unsigned int M2Z, unsigned int ElSize, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)Decode a VPERMILP2 variable mask from an IR-level vector constant.
Defined at line 189 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
-
unsigned int getDefaultMaxUsesToExploreForCaptureTracking ()getDefaultMaxUsesToExploreForCaptureTracking - Return default value of
the maximal number of uses to explore before giving up. It is used by
PointerMayBeCaptured family analysis.
Defined at line 50 of file llvm/lib/Analysis/CaptureTracking.cpp
-
void lintFunction (const Function & F, bool AbortOnError)Lint a function.
Defined at line 750 of file llvm/lib/Analysis/Lint.cpp
-
FunctionPass * createDependenceAnalysisWrapperPass ()createDependenceAnalysisPass - This creates an instance of the
DependenceAnalysis wrapper pass.
Defined at line 196 of file llvm/lib/Analysis/DependenceAnalysis.cpp
-
EVT getApproximateEVTForLLT (LLT Ty, LLVMContext & Ctx)Defined at line 57 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp
-
void reportAndResetTimings (raw_ostream * OutStream)If -time-passes has been specified, report the timings immediately and then
reset the timers to zero. By default it uses the stream created by
CreateInfoOutputFile().
Defined at line 151 of file llvm/lib/IR/PassTimingInfo.cpp
-
bool shouldPrintAfterSomePass ()Defined at line 119 of file llvm/lib/IR/PrintPasses.cpp
-
void PrintWarning (ArrayRef WarningLoc, const Twine & Msg)Defined at line 94 of file llvm/lib/TableGen/Error.cpp
-
void widenWidenableBranch (BranchInst * WidenableBR, Value * NewCond)Given a branch we know is widenable (defined per Analysis/GuardUtils.h),
widen it such that condition 'NewCond' is also known to hold on the taken
path. Branch remains widenable after transform.
Defined at line 82 of file llvm/lib/Transforms/Utils/GuardUtils.cpp
-
bool lowerAtomicRMWInst (AtomicRMWInst * RMWI)Convert the given RMWI into primitive load and stores,
assuming that doing so is legal. Return true if the lowering
succeeds.
Defined at line 125 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp
-
void __deregister_frame (void * )Defined at line of file
-
bool getAsUnsignedInteger (StringRef Str, unsigned int Radix, unsigned long long & Result)GetAsUnsignedInteger - Workhorse method that converts a integer character
sequence of radix up to 36 to an unsigned long long value.
Defined at line 482 of file llvm/lib/Support/StringRef.cpp
-
void describeFuzzerUnaryOperations (int & Ops)Defined at line of file
-
void describeFuzzerUnaryOperations (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 70 of file llvm/lib/FuzzMutate/Operations.cpp
-
void write_integer (raw_ostream & S, long N, size_t MinDigits, IntegerStyle Style)Defined at line 119 of file llvm/lib/Support/NativeFormatting.cpp
-
std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> getDefaultInlineOrder (FunctionAnalysisManager & FAM, const InlineParams & Params, ModuleAnalysisManager & MAM, Module & M)Defined at line 287 of file llvm/lib/Analysis/InlineOrder.cpp
-
Constant * ConstantFoldCastInstruction (unsigned int opcode, Constant * V, Type * DestTy)Constant fold various types of instruction...
Defined at line 124 of file llvm/lib/IR/ConstantFold.cpp
-
bool LoopRotation (Loop * L, LoopInfo * LI, const TargetTransformInfo * TTI, AssumptionCache * AC, DominatorTree * DT, ScalarEvolution * SE, MemorySSAUpdater * MSSAU, const SimplifyQuery & SQ, bool RotationOnly, unsigned int Threshold, bool IsUtilMode, bool PrepareForLTO)Convert a loop into a loop with bottom test. It may
perform loop latch simplication as well if the flag RotationOnly
is false. The flag Threshold represents the size threshold of the loop
header. If the loop header's size exceeds the threshold, the loop rotation
will give up. The flag IsUtilMode controls the heuristic used in the
LoopRotation. If it is true, the profitability heuristic will be ignored.
Defined at line 966 of file llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
-
basic_string getHeatColor (double Percent)Calculates heat color based on percent of "hotness".
Defined at line 66 of file llvm/lib/Analysis/HeatUtils.cpp
-
void initializeInstCombine (PassRegistry & )Initialization Routines
Defined at line 6169 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
-
void PrintWarning (const char * Loc, const Twine & Msg)Defined at line 98 of file llvm/lib/TableGen/Error.cpp
-
FunctionPass * createCFGuardDispatchPass ()Insert Control FLow Guard dispatches on indirect function calls.
Defined at line 312 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp
-
ModulePass * createExpandVariadicsPass (ExpandVariadicsMode )Defined at line 1010 of file llvm/lib/Transforms/IPO/ExpandVariadics.cpp
-
FunctionPass * createPrintFunctionPass (raw_ostream & OS, const std::string & Banner)Create and return a pass that prints functions to the specified
as they are processed.
Defined at line 119 of file llvm/lib/IR/IRPrintingPasses.cpp
-
bool isLegalToPromote (const CallBase & CB, Function * Callee, const char ** FailureReason)Return true if the given indirect call site can be made to call
This function ensures that the number and type of the call site's arguments
and return value match those of the given function. If the types do not
match exactly, they must at least be bitcast compatible. If
is non-null and the indirect call cannot be promoted, the failure reason
will be stored in it.
Defined at line 397 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
void DecodeInsertElementMask (unsigned int NumElts, unsigned int Idx, unsigned int Len, SmallVectorImpl<int> & ShuffleMask)Insert the bottom Len elements from a second source into a vector starting at
element Idx.
Defined at line 50 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Matcher * ConvertPatternToMatcher (const PatternToMatch & Pattern, unsigned int Variant, const CodeGenDAGPatterns & CGP)ConvertPatternToMatcher - Create the matcher for the specified pattern with
the specified variant. If the variant number is invalid, this returns null.
Defined at line 1074 of file llvm/utils/TableGen/DAGISelMatcherGen.cpp
-
void extractInstructionFeatures (llvm::SmallVectorImpl<LRStartEndInfo> & LRPosInfo, MLModelRunner * RegallocRunner, function_ref<int (SlotIndex)> GetOpcode, function_ref<float (SlotIndex)> GetMBBFreq, function_ref<MachineBasicBlock *(SlotIndex)> GetMBBReference, const int InstructionsIndex, const int InstructionsMappingIndex, const int MBBFreqIndex, const int MBBMappingIndex, SlotIndex LastIndex)Defined at line of file
-
LDVImpl * makeVarLocBasedLiveDebugValues ()Factory functions for LiveDebugValues implementations.
Defined at line 2407 of file llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
-
bool isBitcodeWriterPass (Pass * P)Check whether a pass is a BitcodeWriterPass.
Defined at line 77 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
-
bool hasInstrProfHashMismatch (MachineFunction & MF)This checks if the source of this function has drifted since this binary was
profiled previously.
For now, we are piggy backing on what PGO does to
detect this with instrumented profiles. PGO emits an hash of the IR and
checks if the hash has changed. Advanced basic block layout is usually done
on top of PGO optimized binaries and hence this check works well in
practice.
Defined at line 357 of file llvm/lib/CodeGen/BasicBlockSections.cpp
-
void describeFuzzerOtherOps (std::vector<fuzzerop::OpDescriptor> & Ops)Defined at line 80 of file llvm/lib/FuzzMutate/Operations.cpp
-
void describeFuzzerOtherOps (int & Ops)Defined at line of file
-
stable_hash StructuralHash (const GlobalVariable & G)Returns a hash of the global variable
Defined at line 335 of file llvm/lib/IR/StructuralHash.cpp
-
AssumeInst * buildAssumeFromInst (Instruction * I)Build a call to llvm.assume to preserve informations that can be derived
from the given instruction.
If no information derived from
this call returns null.
The returned instruction is not inserted anywhere.
Defined at line 284 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
-
FunctionPass * createX86GlobalBaseRegPass ()This pass initializes a global base register for PIC on x86-32.
Defined at line 10516 of file llvm/lib/Target/X86/X86InstrInfo.cpp
-
char * itaniumDemangle (basic_string_view mangled_name, bool ParseParams)Returns a non-NULL pointer to a NUL-terminated C style string
that should be explicitly freed, if successful. Otherwise, may return
nullptr if mangled_name is not a valid mangling or is nullptr.
Defined at line 365 of file llvm/lib/Demangle/ItaniumDemangle.cpp
-
void write_integer (raw_ostream & S, unsigned long long N, size_t MinDigits, IntegerStyle Style)Defined at line 124 of file llvm/lib/Support/NativeFormatting.cpp
-
int getLazyIRModule (int Buffer, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)If the given MemoryBuffer holds a bitcode image, return a Module
for it which does lazy deserialization of function bodies. Otherwise,
attempt to parse it as LLVM Assembly and return a fully populated
Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode
reader to optionally enable lazy metadata loading. This takes ownership
of
Defined at line of file
-
bool thinLTOPropagateFunctionAttrs (ModuleSummaryIndex & Index, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)Propagate function attributes for function summaries along the index's
callgraph during thinlink
Defined at line 419 of file llvm/lib/Transforms/IPO/FunctionAttrs.cpp
-
void createMemCpyLoopUnknownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, Value * CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo & TTI, optional AtomicSize)Emit a loop implementing the semantics of llvm.memcpy where the size is not
a compile-time constant. Loop will be inserted at
Defined at line 356 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
ModuleSummaryIndex buildModuleSummaryIndex (const Module & M, std::function<BlockFrequencyInfo *(const Function &)> GetBFICallback, ProfileSummaryInfo * PSI, function GetSSICallback)Direct function to compute a
from a given module.
If operating within a pass manager which has defined ways to compute the
for a given function, that can be provided via
a std::function callback. Otherwise, this routine will manually construct
that information.
Defined at line 947 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
PeelingPreferences gatherPeelingPreferences (Loop * L, ScalarEvolution & SE, const TargetTransformInfo & TTI, optional UserAllowPeeling, optional UserAllowProfileBasedPeeling, bool UnrollingSpecficValues)Defined at line 1056 of file llvm/lib/Transforms/Utils/LoopPeel.cpp
-
ModulePass * createCallGraphViewerPass ()Create methods available outside of this file, to use them
"include/llvm/LinkAllPasses.h". Otherwise the pass would be deleted by
the link time optimization.
Defined at line 353 of file llvm/lib/Analysis/CallPrinter.cpp
-
bool operator== (const HTTPRequest & A, const HTTPRequest & B)Defined at line of file
-
Timer * getPassTimer (Pass * )Request the timer for this legacy-pass-manager's pass instance.
Defined at line 142 of file llvm/lib/IR/PassTimingInfo.cpp
-
void PrintError (const Twine & Msg)Functions to print errors.
Defined at line 104 of file llvm/lib/TableGen/Error.cpp
-
bool isCFGuardFunction (const GlobalValue * GV)Defined at line 316 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp
-
FunctionPass * createLowerSwitchPass ()createLowerSwitchPass - Interface to this file...
Defined at line 592 of file llvm/lib/Transforms/Utils/LowerSwitch.cpp
-
LDVImpl * makeInstrRefBasedLiveDebugValues ()Defined at line 3884 of file llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
-
bool getAsSignedInteger (StringRef Str, unsigned int Radix, long long & Result)Defined at line 492 of file llvm/lib/Support/StringRef.cpp
-
void EnablePrettyStackTraceOnSigInfoForThisThread (bool ShouldEnable)Enables (or disables) dumping a "pretty" stack trace when the user sends
SIGINFO or SIGUSR1 to the current process.
This is a per-thread decision so that a program can choose to print stack
traces only on a primary thread, or on all threads that use
PrettyStackTraceEntry.
Defined at line 299 of file llvm/lib/Support/PrettyStackTrace.cpp
-
void DecodeVPPERMMask (const Constant * C, unsigned int Width, SmallVectorImpl<int> & ShuffleMask)Decode a VPPERM variable mask from an IR-level vector constant.
Defined at line 244 of file llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp
-
basic_string getCodeGenDataSectionName (CGDataSectKind CGSK, ObjectFormatType OF, bool AddSegmentInfo)Defined at line 128 of file llvm/lib/CGData/CodeGenData.cpp
-
int finalizeBundle (MachineBasicBlock & MBB, int FirstMI)finalizeBundle - Same functionality as the previous finalizeBundle except
the last instruction in the bundle is not provided as an input. This is
used in cases where bundles are pre-determined by marking instructions
with 'InsideBundle' marker. It returns the MBB instruction iterator that
points to the end of the bundle.
Defined at line 247 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
bool convertUsersOfConstantsToInstructions (ArrayRef Consts, Function * RestrictToFunc, bool RemoveDeadConstants, bool IncludeSelf)Replace constant expressions users of the given constants with
instructions. Return whether anything was changed.
Passing RestrictToFunc will restrict the constant replacement
to the passed in functions scope, as opposed to the replacements
occurring at module scope.
RemoveDeadConstants by default will remove all dead constants as
the final step of the function after replacement, when passed
false it will skip this final step.
If
is enabled, also convert the passed constants themselves
to instructions, rather than only their users.
Defined at line 51 of file llvm/lib/IR/ReplaceConstant.cpp
-
ModulePass * createCallGraphDOTPrinterPass ()Defined at line 355 of file llvm/lib/Analysis/CallPrinter.cpp
-
LLT getLLTForMVT (MVT Ty)Get a rough equivalent of an LLT for a given MVT. LLT does not yet support
scalarable vector types, and will assert if used.
Defined at line 66 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp
-
bool shouldPrintBeforePass (StringRef PassID)Returns true if we should print before/after a specific pass. The argument
should be the pass ID, e.g. "instcombine".
Defined at line 132 of file llvm/lib/IR/PrintPasses.cpp
-
bool hasProfMD (const Instruction & I)Checks if an Instruction has MD_prof Metadata
Defined at line 119 of file llvm/lib/IR/ProfDataUtils.cpp
-
void PrintError (function_ref PrintMsg)Defined at line 106 of file llvm/lib/TableGen/Error.cpp
-
void write_integer (raw_ostream & S, long long N, size_t MinDigits, IntegerStyle Style)Defined at line 129 of file llvm/lib/Support/NativeFormatting.cpp
-
Value * buildAtomicRMWValue (BinOp Op, IRBuilderBase & Builder, Value * Loaded, Value * Val)Emit IR to implement the given atomicrmw operation on values in registers,
returning the new value.
Defined at line 52 of file llvm/lib/Transforms/Utils/LowerAtomic.cpp
-
void OptimizeMatcher (int & Matcher, const CodeGenDAGPatterns & CGP)Defined at line 628 of file llvm/utils/TableGen/DAGISelMatcherOpt.cpp
-
std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>> getInlineOrder (FunctionAnalysisManager & FAM, const InlineParams & Params, ModuleAnalysisManager & MAM, Module & M)Defined at line 312 of file llvm/lib/Analysis/InlineOrder.cpp
-
bool isSafeToMoveBefore (BasicBlock & BB, Instruction & InsertPoint, DominatorTree & DT, const PostDominatorTree * PDT, DependenceInfo * DI)Return true if all instructions (except the terminator) in
can be
safely moved before
Defined at line 368 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
void SplitModule (Module & M, unsigned int N, function_ref<void (int)> ModuleCallback, bool PreserveLocals, bool RoundRobin)Splits the module M into N linkable partitions. The function ModuleCallback
is called N times passing each individual partition as the MPart argument.
PreserveLocals: Split without externalizing locals.
RoundRobin: Use round-robin distribution of functions to modules instead
of the default name-hash-based one.
FIXME: This function does not deal with the somewhat subtle symbol
visibility issues around module splitting, including (but not limited to):
- Internal symbols should not collide with symbols defined outside the
module.
- Internal symbols defined in module-level inline asm should be visible to
each partition.
Defined at line of file
-
void SplitModule (Module & M, unsigned int N, function_ref ModuleCallback, bool PreserveLocals, bool RoundRobin)Splits the module M into N linkable partitions. The function ModuleCallback
is called N times passing each individual partition as the MPart argument.
PreserveLocals: Split without externalizing locals.
RoundRobin: Use round-robin distribution of functions to modules instead
of the default name-hash-based one.
FIXME: This function does not deal with the somewhat subtle symbol
visibility issues around module splitting, including (but not limited to):
- Internal symbols should not collide with symbols defined outside the
module.
- Internal symbols defined in module-level inline asm should be visible to
each partition.
Defined at line 238 of file llvm/lib/Transforms/Utils/SplitModule.cpp
-
FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, FunctionType * T, AttributeList AttributeList)Calls getOrInsertFunction() and then makes sure to add mandatory
argument attributes.
Defined at line 1464 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool isCheckForZeroAndMulWithOverflow (Value * Op0, Value * Op1, bool IsAnd)Defined at line 67 of file llvm/lib/Analysis/OverflowInstAnalysis.cpp
-
bool hasLessThanNumFused (const SUnit & SU, unsigned int FuseLimit)Checks if the number of cluster edges between SU and its predecessors is
less than FuseLimit
Defined at line 46 of file llvm/lib/CodeGen/MacroFusion.cpp
-
bool shouldPrintAfterPass (StringRef PassID)Defined at line 136 of file llvm/lib/IR/PrintPasses.cpp
-
void PrintError (ArrayRef ErrorLoc, const Twine & Msg)Defined at line 110 of file llvm/lib/TableGen/Error.cpp
-
int TableGenMain (const char * argv0, TableGenMainFn MainFn)Defined at line 211 of file llvm/lib/TableGen/Main.cpp
-
void setWidenableBranchCond (BranchInst * WidenableBR, Value * Cond)Given a branch we know is widenable (defined per Analysis/GuardUtils.h),
*set* it's condition such that (only) 'Cond' is known to hold on the taken
path and that the branch remains widenable after transform.
Defined at line 108 of file llvm/lib/Transforms/Utils/GuardUtils.cpp
-
const char * archToWindowsSDKArch (ArchType Arch)Windows SDKs and VC Toolchains group their contents into subdirectories based
on the target architecture. This function converts an llvm::Triple::ArchType
to the corresponding subdirectory name.
Defined at line 262 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
bool debuginfoShouldUseDebugInstrRef (const Triple & T)Defined at line 156 of file llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
-
bool verifyVPlanIsValid (const VPlan & Plan, bool VerifyLate)Verify invariants for general VPlans. If
is passed, skip some
checks that are not applicable at later stages of the transform pipeline.
Currently it checks the following:
1. Region/Block verification: Check the Region/Block verification
invariants for every region in the H-CFG.
2. all phi-like recipes must be at the beginning of a block, with no other
recipes in between. Note that currently there is still an exception for
VPBlendRecipes.
Defined at line 549 of file llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
-
void collectParametricTerms (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Terms)Collect parametric terms occurring in step expressions (first step of
delinearization).
Defined at line 176 of file llvm/lib/Analysis/Delinearization.cpp
-
bool UpgradeIntrinsicFunction (Function * F, Function *& NewFn, bool CanUpgradeDebugIntrinsicsToRecords)This is a more granular function that simply checks an intrinsic function
for upgrading, and returns true if it requires upgrading. It may return
null in NewFn if the all calls to the original intrinsic function
should be transformed to non-function-call instructions.
Defined at line 1816 of file llvm/lib/IR/AutoUpgrade.cpp
-
bool isDereferenceablePointer (const Value * V, Type * Ty, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)Return true if this is always a dereferenceable pointer. If the context
instruction is specified perform context-sensitive analysis and return true
if the pointer is dereferenceable at the specified instruction.
Defined at line 249 of file llvm/lib/Analysis/Loads.cpp
-
int compileModuleWithNewPM (StringRef Arg0, std::unique_ptr<Module> M, std::unique_ptr<MIRParser> MIR, std::unique_ptr<TargetMachine> Target, std::unique_ptr<ToolOutputFile> Out, std::unique_ptr<ToolOutputFile> DwoOut, LLVMContext & Context, const TargetLibraryInfoImpl & TLII, VerifierKind VK, StringRef PassPipeline, CodeGenFileType FileType)Defined at line of file
-
APInt operator- (APInt )Defined at line 2189 of file llvm/include/llvm/ADT/APInt.h
-
unsigned int getAutoSenseRadix (StringRef & Str)Defined at line 383 of file llvm/lib/Support/StringRef.cpp
-
void PrintError (const char * Loc, const Twine & Msg)Defined at line 114 of file llvm/lib/TableGen/Error.cpp
-
Pass * createLoopExtractorPass ()createLoopExtractorPass - This pass extracts all natural loops from the
program into a function if it can.
Defined at line 110 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp
-
FunctionPass * createDeadStoreEliminationPass ()===----------------------------------------------------------------------===//
DeadStoreElimination - This pass deletes stores that are post-dominated by
must-aliased stores and are not loaded used between the stores.
Defined at line 2737 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
-
void DecodeMOVHLPSMask (unsigned int NElts, SmallVectorImpl<int> & ShuffleMask)<
3,1> or
<
6,7,2,3>
Defined at line 61 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
const X86FoldTableEntry * lookupTwoAddrFoldTable (unsigned int RegOp)Look up the memory folding table entry for folding a load and a store into
operand 0.
Defined at line 124 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
void PromoteMemToReg (ArrayRef Allocas, DominatorTree & DT, AssumptionCache * AC)Promote the specified list of alloca instructions into scalar
registers, inserting PHI nodes as appropriate.
This function makes use of DominanceFrontier information. This function
does not modify the CFG of the function at all. All allocas must be from
the same function.
Defined at line 1206 of file llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
-
void EmitMatcherTable (Matcher * Matcher, const CodeGenDAGPatterns & CGP, raw_ostream & OS)Defined at line 1364 of file llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
-
bool shouldOptimizeForSize (const MachineBasicBlock * MBB, ProfileSummaryInfo * PSI, MBFIWrapper * MBFIWrapper, PGSOQueryType QueryType)Returns true if machine basic block
is suggested to be size-optimized
based on the profile.
Defined at line 46 of file llvm/lib/CodeGen/MachineSizeOpts.cpp
-
FunctionPass * createRegionInfoPass ()===--------------------------------------------------------------------===//
createRegionInfoPass - This pass finds all single entry single exit regions
in a function and builds the region hierarchy.
Defined at line 175 of file llvm/lib/Analysis/RegionInfo.cpp
-
bool isBranchWeightMD (const MDNode * ProfileData)Checks if an MDNode contains Branch Weight Metadata
Defined at line 123 of file llvm/lib/IR/ProfDataUtils.cpp
-
hash_code hash_value (const MCRegister & )Defined at line 126 of file llvm/include/llvm/MC/MCRegister.h
-
void PrintError (const Record * Rec, const Twine & Msg)This method takes a Record and uses the source location
stored in it.
Defined at line 120 of file llvm/lib/TableGen/Error.cpp
-
int TableGenMain (const char * argv0, MultiFileTableGenMainFn MainFn)Defined at line 130 of file llvm/lib/TableGen/Main.cpp
-
FunctionPass * createCleanupLocalDynamicTLSPass ()This pass combines multiple accesses to local-dynamic TLS variables so that
the TLS base address for the module is only fetched once per execution path
through the function.
Defined at line 10628 of file llvm/lib/Target/X86/X86InstrInfo.cpp
-
void initializeModuleNDMPass (PassRegistry & )Defined at line 654 of file llvm/unittests/IR/LegacyPassManagerTest.cpp
-
Expected<std::string> computeArchiveRelativePath (StringRef From, StringRef To)Compute the relative path from From to To.
Defined at line 999 of file llvm/lib/Object/ArchiveWriter.cpp
-
void write_hex (raw_ostream & S, uint64_t N, HexPrintStyle Style, optional Width)Defined at line 134 of file llvm/lib/Support/NativeFormatting.cpp
-
void appendToGlobalCtors (Module & M, Function * F, int Priority, Constant * Data)Append F to the list of global ctors of module M with the given Priority.
This wraps the function in the appropriate structure and stores it along
side other global constructors. For details see
https://llvm.org/docs/LangRef.html#the-llvm-global-ctors-global-variable
Defined at line 74 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
const llvm::fltSemantics & getFltSemanticForLLT (LLT Ty)Get the appropriate floating point arithmetic semantic based on the bit size
of the given scalar LLT.
Defined at line 74 of file llvm/lib/CodeGen/LowLevelTypeUtils.cpp
-
bool canUseDebuginfod ()Returns false if a debuginfod lookup can be determined to have no chance of
succeeding.
Defined at line 67 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void handleExecNameEncodedOptimizerOpts (StringRef ExecName)Handle optimizer options which are encoded in the executable name.
Same semantics as in 'handleExecNameEncodedBEOpts'.
Defined at line 68 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp
-
void printLLVMNameWithoutPrefix (raw_ostream & OS, StringRef Name)Print out a name of an LLVM value without any prefixes.
The name is surrounded with ""'s and escaped if it has any special or
non-printable characters in it.
Defined at line 462 of file llvm/lib/IR/AsmWriter.cpp
-
bool shouldPrintBeforeAll ()Returns true if we should print before/after all passes.
Defined at line 128 of file llvm/lib/IR/PrintPasses.cpp
-
stable_hash StructuralHash (const Module & M, bool DetailedHash)Returns a hash of the module
by hashing all functions and global
variables contained within.
Parameters
M The module to hash.DetailedHash Whether or not to encode additional information in the function hashes that composed the module hash.Defined at line 339 of file llvm/lib/IR/StructuralHash.cpp
-
void setBugReportMsg (const char * Msg)Replaces the generic bug report message that is output upon
a crash.
Defined at line 220 of file llvm/lib/Support/PrettyStackTrace.cpp
-
void PrintError (const RecordVal * RecVal, const Twine & Msg)This method takes a RecordVal and uses the source location
stored in it.
Defined at line 126 of file llvm/lib/TableGen/Error.cpp
-
bool expandDivision (BinaryOperator * Div)Generate code to divide two integers, replacing Div with the generated
code. This currently generates code similarly to compiler-rt's
implementations, but future work includes generating more specialized code
when more information about the operands are known.
Replace Div with generated code.
Defined at line 406 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
const char * archToLegacyVCArch (ArchType Arch)Similar to the above function, but for Visual Studios before VS2017.
Defined at line 278 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
void initializeFPassPass (PassRegistry & )Defined at line 658 of file llvm/unittests/IR/LegacyPassManagerTest.cpp
-
bool consumeUnsignedInteger (StringRef & Str, unsigned int Radix, unsigned long long & Result)Defined at line 404 of file llvm/lib/Support/StringRef.cpp
-
unsigned int GetSuccessorNumber (const BasicBlock * BB, const BasicBlock * Succ)GetSuccessorNumber - Search for the specified successor of basic block BB
and return its position in the terminator instruction's list of
successors. It is an error to call this with a block that is not a
successor.
Defined at line 80 of file llvm/lib/Analysis/CFG.cpp
-
void install_fatal_error_handler (fatal_error_handler_t handler, void * user_data)install_fatal_error_handler - Installs a new error handler to be used
whenever a serious (non-recoverable) error is encountered by LLVM.
If no error handler is installed the default is to print the error message
to stderr, and call exit(1). If an error handler is installed then it is
the handler's responsibility to log the message, it will no longer be
printed to stderr. If the error handler returns, then exit(1) will be
called.
It is dangerous to naively use an error handler which throws an exception.
Even though some applications desire to gracefully recover from arbitrary
faults, blindly throwing exceptions through unfamiliar code isn't a way to
achieve this.
Parameters
user_data - An argument which will be passed to the install error handler.Defined at line 77 of file llvm/lib/Support/ErrorHandling.cpp
-
bool finalizeBundles (MachineFunction & MF)finalizeBundles - Finalize instruction bundles in the specified
MachineFunction. Return true if any bundles are finalized.
Defined at line 260 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
TinyPtrVector<DbgVariableRecord *> findDVRDeclares (Value * V)Finds dbg.declare records declaring local variables as living in the
memory that 'V' points to.
Defined at line 48 of file llvm/lib/IR/DebugInfo.cpp
-
bool shouldPrintAfterAll ()Defined at line 130 of file llvm/lib/IR/PrintPasses.cpp
-
void initializeCGPassPass (PassRegistry & )Defined at line 657 of file llvm/unittests/IR/LegacyPassManagerTest.cpp
-
Constant * ConstantFoldSelectInstruction (Constant * Cond, Constant * V1, Constant * V2)Attempt to constant fold a select instruction with the specified
operands. The constant result is returned if successful; if not, null is
returned.
Defined at line 256 of file llvm/lib/IR/ConstantFold.cpp
-
void write_double (raw_ostream & S, double D, FloatStyle Style, optional Precision)Defined at line 164 of file llvm/lib/Support/NativeFormatting.cpp
-
int PrepareToSplitEntryBlock (BasicBlock & BB, int IP)Instrumentation passes often insert conditional checks into entry blocks.
Call this function before splitting the entry block to move instructions
that must remain in the entry block up before the split point. Static
allocas and llvm.localescape calls, for example, must remain in the entry
block.
Defined at line of file
-
ilist_iterator_w_bits PrepareToSplitEntryBlock (BasicBlock & BB, ilist_iterator_w_bits IP)Instrumentation passes often insert conditional checks into entry blocks.
Call this function before splitting the entry block to move instructions
that must remain in the entry block up before the split point. Static
allocas and llvm.localescape calls, for example, must remain in the entry
block.
Defined at line 61 of file llvm/lib/Transforms/Utils/Instrumentation.cpp
-
FunctionCallee getOrInsertLibFunc (Module * M, const TargetLibraryInfo & TLI, LibFunc TheLibFunc, FunctionType * T)Defined at line 1537 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void computePeelCount (Loop * L, unsigned int LoopSize, TargetTransformInfo::PeelingPreferences & PP, unsigned int TripCount, DominatorTree & DT, ScalarEvolution & SE, const TargetTransformInfo & TTI, AssumptionCache * AC, unsigned int Threshold)Return the number of iterations we want to peel off.
Defined at line 751 of file llvm/lib/Transforms/Utils/LoopPeel.cpp
-
void viewRegion (llvm::RegionInfo * RI)Open a viewer to display the GraphViz vizualization of the analysis
result.
Practical to call in the debugger.
Includes the instructions in each BasicBlock.
Parameters
RI The analysis to display.Defined at line 237 of file llvm/lib/Analysis/RegionPrinter.cpp
-
StringRef getEHPersonalityName (EHPersonality Pers)Defined at line 58 of file llvm/lib/IR/EHPersonalities.cpp
-
bool isValueProfileMD (const MDNode * ProfileData)Checks if an MDNode contains value profiling Metadata
Defined at line 127 of file llvm/lib/IR/ProfDataUtils.cpp
-
unsigned int Log2 (Align )Returns the log2 of the alignment.
Defined at line 197 of file llvm/include/llvm/Support/Alignment.h
-
bool isCurrentDebugType (const char * Type, int Level)Return true if the specified string is the debug type
specified on the command line, or if none was specified on the command line
with the -debug-only=X option.
Defined at line 81 of file llvm/lib/Support/Debug.cpp
-
void PrintFatalError (const Twine & Msg)Functions to print fatal errors.
Defined at line 132 of file llvm/lib/TableGen/Error.cpp
-
void DecodeMOVLHPSMask (unsigned int NElts, SmallVectorImpl<int> & ShuffleMask)<
0,2> or
<
0,1,4,5>
Defined at line 70 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
const X86FoldTableEntry * lookupFoldTable (unsigned int RegOp, unsigned int OpNum)Look up the memory folding table entry for folding a load or store with
operand OpNum.
Defined at line 128 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
void initializeLPassPass (PassRegistry & )Defined at line 661 of file llvm/unittests/IR/LegacyPassManagerTest.cpp
-
bool consumeSignedInteger (StringRef & Str, unsigned int Radix, long long & Result)Defined at line 452 of file llvm/lib/Support/StringRef.cpp
-
void computeAccessFunctions (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes)Return in Subscripts the access functions for each dimension in Sizes
(third step of delinearization).
Defined at line 346 of file llvm/lib/Analysis/Delinearization.cpp
-
void createMemCpyLoopKnownSize (Instruction * InsertBefore, Value * SrcAddr, Value * DstAddr, ConstantInt * CopyLen, Align SrcAlign, Align DestAlign, bool SrcIsVolatile, bool DstIsVolatile, bool CanOverlap, const TargetTransformInfo & TTI, optional AtomicCpySize)Emit a loop implementing the semantics of an llvm.memcpy whose size is a
compile time constant. Loop is inserted at
Defined at line 236 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
void extractMBBFrequency (SlotIndex CurrentIndex, const size_t CurrentInstructionIndex, int & VisitedMBBs, function_ref<float (SlotIndex)> GetMBBFreq, MachineBasicBlock * CurrentMBBReference, MLModelRunner * RegallocRunner, const int MBBFreqIndex, const int MBBMappingIndex)Defined at line of file
-
void UpgradeIntrinsicCall (CallBase * CB, Function * NewFn)This is the complement to the above, replacing a specific call to an
intrinsic function with a call to the specified new function.
Defined at line 4789 of file llvm/lib/IR/AutoUpgrade.cpp
-
TinyPtrVector<DbgVariableRecord *> findDVRValues (Value * V)As above, for DVRValues.
Defined at line 82 of file llvm/lib/IR/DebugInfo.cpp
-
bool isIRPrintingPass (Pass * P)Return true if a pass is for IR printing.
Defined at line 124 of file llvm/lib/IR/IRPrintingPasses.cpp
-
bool canVectorizeStructTy (StructType * StructTy)Returns true if `StructTy` is an unpacked literal struct where all elements
are scalars that can be used as vector element types.
Defined at line 58 of file llvm/lib/IR/VectorTypeUtils.cpp
-
bool operator== (Align Lhs, Align Rhs)Comparisons operators between Align.
Defined at line 248 of file llvm/include/llvm/Support/Alignment.h
-
const char * getBugReportMsg ()Get the bug report message that will be output upon a crash.
Defined at line 224 of file llvm/lib/Support/PrettyStackTrace.cpp
-
void runOnNewStack (unsigned int StackSize, function_ref Fn)Runs Fn on a new stack of at least the given size.
The preferred implementation is split stacks on platforms that have a good
debugging experience for them. On other platforms a new thread is used.
Parameters
StackSize requested stack size. A size of 0 uses the default stack size of the platform.Defined at line 122 of file llvm/lib/Support/ProgramStack.cpp
-
void PrintFatalError (ArrayRef ErrorLoc, const Twine & Msg)Defined at line 142 of file llvm/lib/TableGen/Error.cpp
-
Pass * createSingleLoopExtractorPass ()createSingleLoopExtractorPass - This pass extracts one natural loop from the
program into a function if it can. This is used by bugpoint.
Defined at line 257 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp
-
Pass * createAlwaysInlinerLegacyPass (bool InsertLifetime)Create a legacy pass manager instance of a pass to inline and remove
functions marked as "always_inline".
Defined at line 164 of file llvm/lib/Transforms/IPO/AlwaysInliner.cpp
-
const char * archToDevDivInternalArch (ArchType Arch)Similar to the above function, but for DevDiv internal builds.
Defined at line 296 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
MVT getValueType (const Record * Rec)Returns the MVT that the specified TableGen
record corresponds to.
Defined at line 45 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp
-
iterator_range getDbgRecordRange (DbgMarker * )Inline helper to return a range of DbgRecords attached to a marker. It needs
to be inlined as it's frequently called, but also come after the declaration
of DbgMarker. Thus: it's pre-declared by users like Instruction, then an
inlineable body defined here.
Defined at line 699 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
CallBase & promoteCall (CallBase & CB, Function * Callee, CastInst ** RetBitCast)Promote the given indirect call site to unconditionally call
This function promotes the given call site, returning the direct call or
invoke instruction. If the function type of the call site doesn't match that
of the callee, bitcast instructions are inserted where appropriate. If
is non-null, it will be used to store the return value bitcast,
if created.
Defined at line 483 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
void appendToGlobalDtors (Module & M, Function * F, int Priority, Constant * Data)Same as appendToGlobalCtors(), but for global dtors.
Defined at line 78 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
unique_ptr getLazyIRFileModule (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, bool ShouldLazyLoadMetadata)If the given file holds a bitcode image, return a Module
for it which does lazy deserialization of function bodies. Otherwise,
attempt to parse it as LLVM Assembly and return a fully populated
Module. The ShouldLazyLoadMetadata flag is passed down to the bitcode
reader to optionally enable lazy metadata loading.
Defined at line 54 of file llvm/lib/IRReader/IRReader.cpp
-
void moveInstructionsToTheBeginning (BasicBlock & FromBB, BasicBlock & ToBB, DominatorTree & DT, const PostDominatorTree & PDT, DependenceInfo & DI)Move instructions, in an order-preserving manner, from
to the
beginning of
when proven safe.
Defined at line 380 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
Value * getRuntimeVF (IRBuilderBase & B, Type * Ty, ElementCount VF)Return the runtime value for VF.
Defined at line 786 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-
int getDefaultDebuginfodUrls ()Finds default array of Debuginfod server URLs by checking DEBUGINFOD_URLS
environment variable.
Defined at line 71 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
EHPersonality getDefaultEHPersonality (const Triple & T)Defined at line 96 of file llvm/lib/IR/EHPersonalities.cpp
-
const std::error_category & sampleprof_category ()Defined at line 123 of file llvm/lib/ProfileData/SampleProf.cpp
-
bool operator!= (Align Lhs, Align Rhs)Defined at line 251 of file llvm/include/llvm/Support/Alignment.h
-
void remove_fatal_error_handler ()Restores default error handling behaviour.
Defined at line 87 of file llvm/lib/Support/ErrorHandling.cpp
-
uint64_t xxHash64 (StringRef Data)Defined at line 103 of file llvm/lib/Support/xxhash.cpp
-
void PrintFatalError (const Record * Rec, const Twine & Msg)This method takes a Record and uses the source location
stored in it.
Defined at line 149 of file llvm/lib/TableGen/Error.cpp
-
FunctionPass * createSROAPass (bool PreserveCFG)===----------------------------------------------------------------------===//
SROA - Replace aggregates or pieces of aggregates with scalar SSA values.
Defined at line 6234 of file llvm/lib/Transforms/Scalar/SROA.cpp
-
void DecodeMOVSLDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Defined at line 78 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool fuseInstructionPair (ScheduleDAGInstrs & DAG, SUnit & FirstSU, SUnit & SecondSU)Create an artificial edge between FirstSU and SecondSU.
Make data dependencies from the FirstSU also dependent on the SecondSU to
prevent them from being scheduled between the FirstSU and the SecondSU
and vice-versa.
Fusing more than 2 instructions is not currently supported.
Defined at line 53 of file llvm/lib/CodeGen/MacroFusion.cpp
-
bool salvageKnowledge (Instruction * I, AssumptionCache * AC, DominatorTree * DT)Calls BuildAssumeFromInst and if the resulting llvm.assume is valid insert
if before I. This is usually what need to be done to salvage the knowledge
contained in the instruction I.
The AssumptionCache must be provided if it is available or the cache may
become silently be invalid.
The DominatorTree can optionally be provided to enable cross-block
reasoning.
This returns if a change was made.
Defined at line 292 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
-
bool printDwarfExpressionCompact (const DWARFExpression * E, raw_ostream & OS, function GetNameForDWARFReg)Print the expression in a format intended to be compact and useful to a
user, but not perfectly unambiguous, or capable of representing every
valid DWARF expression. Returns true if the expression was sucessfully
printed.
Parameters
E to be printedOS to this streamGetNameForDWARFReg callback to return dwarf register nameDefined at line 335 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
TinyPtrVector<DbgVariableRecord *> findDVRDeclareValues (Value * V)As above, for DVRDeclareValues.
Defined at line 65 of file llvm/lib/IR/DebugInfo.cpp
-
int printBeforePasses ()The list of passes to print before/after, if we only want to print
before/after specific passes.
Defined at line 140 of file llvm/lib/IR/PrintPasses.cpp
-
bool operator<= (Align Lhs, Align Rhs)Defined at line 254 of file llvm/include/llvm/Support/Alignment.h
-
uint64_t xxHash64 (llvm::ArrayRef<uint8_t> Data)Defined at line 163 of file llvm/lib/Support/xxhash.cpp
-
void PrintFatalError (const RecordVal * RecVal, const Twine & Msg)This method takes a RecordVal and uses the source location
stored in it.
Defined at line 156 of file llvm/lib/TableGen/Error.cpp
-
FunctionPass * createPostInlineEntryExitInstrumenterPass ()===----------------------------------------------------------------------===//
EntryExitInstrumenter pass - Instrument function entry/exit with calls to
mcount(),
@
__cyg_profile_func_{enter,exit} and the like. There are two
variants, intended to run pre- and post-inlining, respectively. Only the
post-inlining variant is used with the legacy pass manager.
Defined at line 195 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
-
StringRef getEnumName (MVT T)Defined at line 54 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp
-
bool PointerMayBeCaptured (const Value * V, bool ReturnCaptures, unsigned int MaxUsesToExplore)PointerMayBeCaptured - Return true if this pointer value may be captured
by the enclosing function (which is required to exist). This routine can
be expensive, so consider caching the results. The boolean ReturnCaptures
specifies whether returning the value (or part of it) from the function
counts as capturing it or not.
MaxUsesToExplore specifies how many uses the analysis should explore for
one value before giving up due too "too many uses". If MaxUsesToExplore
is zero, a default value is assumed.
This function only considers captures of the passed value via its def-use
chain, without considering captures of values it may be based on, or
implicit captures such as for external globals.
Defined at line 213 of file llvm/lib/Analysis/CaptureTracking.cpp
-
bool parseWidenableBranch (const User * U, Value *& Condition, Value *& WidenableCondition, BasicBlock *& IfTrueBB, BasicBlock *& IfFalseBB)If U is widenable branch looking like:
%cond = ...
%wc = call i1
.experimental.widenable.condition()
%branch_cond = and i1 %cond, %wc
br i1 %branch_cond, label %if_true_bb, label %if_false_bb ;
<
--- U
The function returns true, and the values %cond and %wc and blocks
%if_true_bb, if_false_bb are returned in
the parameters (Condition, WidenableCondition, IfTrueBB and IfFalseFF)
respectively. If
does not match this pattern, return false.
Defined at line 53 of file llvm/lib/Analysis/GuardUtils.cpp
-
GlobalVariable * createPrivateGlobalForString (Module & M, StringRef Str, bool AllowMerging, Twine NamePrefix)Create a constant for Str so that we can pass it to the run-time lib.
Defined at line 80 of file llvm/lib/Transforms/Utils/Instrumentation.cpp
-
bool IsConstantOffsetFromGlobal (Constant * C, GlobalValue *& GV, APInt & Offset, const DataLayout & DL, DSOLocalEquivalent ** DSOEquiv)If this constant is a constant offset from a global, return the global and
the constant. Because of constantexprs, this function is recursive.
Defined at line 304 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool appendArchToWindowsSDKLibPath (int SDKMajor, SmallString LibPath, ArchType Arch, std::string & path)Defined at line 312 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
void printMIR (raw_ostream & OS, const Module & M)Print LLVM IR using the MIR serialization format to the given output stream.
Defined at line 1019 of file llvm/lib/CodeGen/MIRPrinter.cpp
-
bool isCycleInvariant (const int * Cycle, MachineInstr & I)TODO: add this function to GenericCycle template after implementing IR
version.
Defined at line 112 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp
-
FunctionPass * createAtomicExpandLegacyPass ()AtomicExpandPass - At IR level this pass replace atomic instructions with
__atomic_* library calls, or target specific instruction which implement the
same semantics in a way which better fits the target backend.
Defined at line 423 of file llvm/lib/CodeGen/AtomicExpandPass.cpp
-
int printAfterPasses ()Defined at line 144 of file llvm/lib/IR/PrintPasses.cpp
-
bool operator>= (Align Lhs, Align Rhs)Defined at line 257 of file llvm/include/llvm/Support/Alignment.h
-
void PrintFatalError (function_ref PrintMsg)Defined at line 137 of file llvm/lib/TableGen/Error.cpp
-
void DecodeMOVSHDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Defined at line 85 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
const X86FoldTableEntry * lookupBroadcastFoldTable (unsigned int RegOp, unsigned int OpNum)Look up the broadcast folding table entry for folding a broadcast with
operand OpNum.
Defined at line 146 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
int parseAssemblyFile (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots)This function is a main interface to the LLVM Assembly Parser. It parses
an ASCII file that (presumably) contains LLVM Assembly code. It returns a
Module (intermediate representation) with the corresponding features. Note
that this does not verify that the generated Module is valid, so you should
run the verifier after parsing the file to check that it is okay.
Parse LLVM Assembly from a file
Parameters
Filename The name of the file to parseErr Error result info.Context Context in which to allocate globals info.Slots The optional slot mapping that will be initialized during parsing.Defined at line 64 of file llvm/lib/AsmParser/Parser.cpp
-
void findDevirtualizableCallsForTypeTest (SmallVectorImpl<DevirtCallSite> & DevirtCalls, SmallVectorImpl<CallInst *> & Assumes, const CallInst * CI, DominatorTree & DT)Given a call to the intrinsic
@
llvm.type.test, find all devirtualizable
call sites based on the call and return them in DevirtCalls.
Defined at line 87 of file llvm/lib/Analysis/TypeMetadataUtils.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const IndexedReference & R)===----------------------------------------------------------------------===//
IndexedReference implementation
Defined at line 129 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp
-
basic_string getDebuginfodCacheKey (StringRef UrlPath)Returns the cache key for a given debuginfod URL path.
Defined at line 57 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void UpgradeInlineAsmString (std::string * AsmStr)This upgrades the comment for objc retain release markers in inline asm
calls
Defined at line 2603 of file llvm/lib/IR/AutoUpgrade.cpp
-
bool operator< (Align Lhs, Align Rhs)Defined at line 260 of file llvm/include/llvm/Support/Alignment.h
-
uint64_t xxh3_64bits (ArrayRef<uint8_t> data)Defined at line 553 of file llvm/lib/Support/xxhash.cpp
-
bool HasLoopOrEntryConvergenceToken (const BasicBlock * BB)Check if the given basic block contains any loop or entry convergent
intrinsic instructions.
Defined at line 95 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Value * createStepForVF (IRBuilderBase & B, Type * Ty, ElementCount VF, int64_t Step)Return a value for Step multiplied by VF.
Defined at line 772 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-
bool isCriticalEdge (const Instruction * TI, unsigned int SuccNum, bool AllowIdenticalEdges)Return true if the specified edge is a critical edge. Critical edges are
edges from a block with multiple successors to a block with multiple
predecessors.
Defined at line 96 of file llvm/lib/Analysis/CFG.cpp
-
Constant * ConstantFoldExtractElementInstruction (Constant * Val, Constant * Idx)Attempt to constant fold an extractelement instruction with the
specified operands and indices. The constant result is returned if
successful; if not, null is returned.
Defined at line 334 of file llvm/lib/IR/ConstantFold.cpp
-
const std::error_category & cgdata_category ()Defined at line 94 of file llvm/lib/CGData/CodeGenData.cpp
-
bool operator> (Align Lhs, Align Rhs)Defined at line 263 of file llvm/include/llvm/Support/Alignment.h
-
bool expandRemainderUpTo32Bits (BinaryOperator * Rem)Generate code to calculate the remainder of two integers, replacing Rem
with the generated code. Uses ExpandReminder with a 32bit Rem which
makes it useful for targets with little or no support for less than
32 bit arithmetic.
Replace Rem with generated code.
Defined at line 455 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
void DecodeMOVDDUPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Defined at line 92 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void findDbgUsers (Value * V, SmallVectorImpl<DbgVariableRecord *> & DbgVariableRecords)Finds the debug info records describing a value.
Defined at line 146 of file llvm/lib/IR/DebugInfo.cpp
-
bool isDereferenceableAndAlignedPointer (const Value * V, Type * Ty, Align Alignment, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)Returns true if V is always a dereferenceable pointer with alignment
greater or equal than requested. If the context instruction is specified
performs context-sensitive analysis and returns true if the pointer is
dereferenceable at the specified instruction.
Defined at line 229 of file llvm/lib/Analysis/Loads.cpp
-
ASanStackFrameLayout ComputeASanStackFrameLayout (SmallVectorImpl<ASanStackVariableDescription> & Vars, uint64_t Granularity, uint64_t MinHeaderSize)Defined at line 52 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
bool forcePrintModuleIR ()Returns true if we should always print the entire module.
Defined at line 148 of file llvm/lib/IR/PrintPasses.cpp
-
bool hasBranchWeightMD (const Instruction & I)Checks if an instructions has Branch Weight Metadata
Parameters
I The instruction to checkDefined at line 131 of file llvm/lib/IR/ProfDataUtils.cpp
-
unsigned int encode (MaybeAlign A)Returns a representation of the alignment that encodes undefined as 0.
Defined at line 206 of file llvm/include/llvm/Support/Alignment.h
-
bool CheckAssert (SMLoc Loc, const Init * Condition, const Init * Message)Check an assertion: Obtain the condition value and be sure it is true.
If not, print a nonfatal error along with the message.
Defined at line 163 of file llvm/lib/TableGen/Error.cpp
-
basic_string getQualifiedName (const Record * R)getQualifiedName - Return the name of the specified record, with a
namespace qualifier if the record contains one.
Defined at line 69 of file llvm/utils/TableGen/Common/CodeGenTarget.cpp
-
bool isCriticalEdge (const Instruction * TI, const BasicBlock * Succ, bool AllowIdenticalEdges)Defined at line 102 of file llvm/lib/Analysis/CFG.cpp
-
void printMIR (raw_ostream & OS, const MachineModuleInfo & MMI, const MachineFunction & MF)Print MIR using Legacy Pass Manager (uses MachineModuleInfo).
Defined at line 1024 of file llvm/lib/CodeGen/MIRPrinter.cpp
-
int runFuzzerOnInputs (int ArgC, char *[] ArgV, FuzzerTestFun TestOne, FuzzerInitFun Init)Runs a fuzz target on the inputs specified on the command line.
Useful for testing fuzz targets without linking to libFuzzer. Finds inputs
in the argument list in a libFuzzer compatible way.
Defined at line 142 of file llvm/lib/FuzzMutate/FuzzerCLI.cpp
-
void expandMemCpyAsLoop (MemCpyInst * MemCpy, const TargetTransformInfo & TTI, ScalarEvolution * SE)Expand
as a loop.
is not deleted.
Defined at line 982 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
AssumeInst * buildAssumeFromKnowledge (ArrayRef<RetainedKnowledge> Knowledge, Instruction * CtxI, AssumptionCache * AC, DominatorTree * DT)Build and return a new assume created from the provided knowledge
if the knowledge in the assume is fully redundant this will return nullptr
Defined at line 308 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
-
const Loop * addClonedBlockToLoopInfo (BasicBlock * OriginalBB, BasicBlock * ClonedBB, LoopInfo * LI, NewLoopsMap & NewLoops)@
}
Defined at line 149 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp
-
const Loop * addClonedBlockToLoopInfo (BasicBlock * OriginalBB, BasicBlock * ClonedBB, LoopInfo * LI, int & NewLoops)@
}
Defined at line of file
-
void thinLTOResolvePrevailingInIndex (const lto::Config & C, ModuleSummaryIndex & Index, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, function_ref<void (StringRef, GlobalValue::GUID, GlobalValue::LinkageTypes)> recordNewLinkage, const int & GUIDPreservedSymbols)Resolve linkage for prevailing symbols in the
We'd like to drop these functions if they are no longer referenced in the
current module. However there is a chance that another module is still
referencing them because of the import. We make sure we always emit at least
one copy.
Defined at line 449 of file llvm/lib/LTO/LTO.cpp
-
basic_string formatCallSiteLocation (DebugLoc DLoc, const CallSiteFormat & Format)Get call site location as a string with the given format
Defined at line 472 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
void initializeAAResultsWrapperPassPass (PassRegistry & )Defined at line 746 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
void warnToStderr (Error Err)Defined at line 1316 of file llvm/lib/Object/ArchiveWriter.cpp
-
MaybeAlign decodeMaybeAlign (unsigned int Value)Dual operation of the encode function above.
Defined at line 209 of file llvm/include/llvm/Support/Alignment.h
-
void dumpMessage (SMLoc Loc, const Init * Message)Dump a message to stderr.
Defined at line 181 of file llvm/lib/TableGen/Error.cpp
-
Pass * createLICMPass ()===----------------------------------------------------------------------===//
LICM - This pass is a loop invariant code motion and memory promotion pass.
Defined at line 386 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
FunctionPass * createX86FPStackifierLegacyPass ()Defined at line 317 of file llvm/lib/Target/X86/X86FloatingPoint.cpp
-
const X86FoldTableEntry * lookupUnfoldTable (unsigned int MemOp)Look up the memory unfolding table entry for this instruction.
Defined at line 230 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
bool hasAssumption (const Function & F, const KnownAssumptionString & AssumptionStr)Return true if
has the assumption
attached.
Defined at line 67 of file llvm/lib/IR/Assumptions.cpp
-
void DecodePSLLDQMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Defined at line 100 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
unique_ptr createWasmObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)Construct a new Wasm writer instance.
Parameters
MOTW - The target specific Wasm writer subclass.OS - The stream to write to.Defined at line 1949 of file llvm/lib/MC/WasmObjectWriter.cpp
-
void setDefaultDebuginfodUrls (const int & URLs)Sets the list of debuginfod server URLs to query. This overrides the
environment variable DEBUGINFOD_URLS.
Defined at line of file
-
void setDefaultDebuginfodUrls (const SmallVector<StringRef> & URLs)Set the default debuginfod URL list, override the environment variable.
Defined at line 90 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void initializeAlwaysInlinerLegacyPassPass (PassRegistry & )Defined at line 161 of file llvm/lib/Transforms/IPO/AlwaysInliner.cpp
-
void transformGlobalCtors (Module & M, const GlobalCtorTransformFn & Fn)Defined at line 118 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
bool parseWidenableBranch (User * U, Use *& Cond, Use *& WC, BasicBlock *& IfTrueBB, BasicBlock *& IfFalseBB)Analogous to the above, but return the Uses so that they can be
modified. Unlike previous version, Condition is optional and may be null.
Defined at line 69 of file llvm/lib/Analysis/GuardUtils.cpp
-
PrettyStackTraceEntry * ReverseStackTrace (PrettyStackTraceEntry * )Defined at line 71 of file llvm/lib/Support/PrettyStackTrace.cpp
-
std::unique_ptr<Module> CloneModule (const Module & M, ValueToValueMapTy & VMap)Defined at line 47 of file llvm/lib/Transforms/Utils/CloneModule.cpp
-
unique_ptr parseIR (MemoryBufferRef Buffer, SMDiagnostic & Err, LLVMContext & Context, ParserCallbacks Callbacks, AsmParserContext * ParserContext)If the given MemoryBuffer holds a bitcode image, return a Module
for it. Otherwise, attempt to parse it as LLVM Assembly and return
a Module for it.
Parameters
DataLayoutCallback Override datalayout in the llvm assembly.Defined at line 70 of file llvm/lib/IRReader/IRReader.cpp
-
void moveInstructionsToTheEnd (BasicBlock & FromBB, BasicBlock & ToBB, DominatorTree & DT, const PostDominatorTree & PDT, DependenceInfo & DI)Move instructions, in an order-preserving manner, from
to the end
of
when proven safe.
Defined at line 393 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
bool forcePrintFuncIR ()Returns true if we should print the entire function for loop passes.
Defined at line 150 of file llvm/lib/IR/PrintPasses.cpp
-
void initializeAssignmentTrackingAnalysisPass (PassRegistry & )Defined at line 2815 of file llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
-
void setCurrentDebugType (const char * Type)setCurrentDebugType - Set the current debug type, as if the -debug-only=X
option were specified. Note that DebugFlag also needs to be set to true for
debug output to be produced.
The debug type format is "type[:level]", where the level is an optional
integer. If a level is provided, the debug output is enabled only if the
user specified a level at least as high as the provided level.
0 is a special level that acts as an opt-out for this specific debug type
without affecting the other debug output.
Defined at line 107 of file llvm/lib/Support/Debug.cpp
-
Comdat * getOrCreateFunctionComdat (Function & F, Triple & T)Returns F.getComdat() if it exists.
Otherwise creates a new comdat, sets F's comdat, and returns it.
Returns nullptr on failure.
Defined at line 96 of file llvm/lib/Transforms/Utils/Instrumentation.cpp
-
void transformGlobalDtors (Module & M, const GlobalCtorTransformFn & Fn)Defined at line 122 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
void findDbgValues (Value * V, SmallVectorImpl<DbgVariableRecord *> & DbgVariableRecords)Finds the dbg.values describing a value.
Defined at line 141 of file llvm/lib/IR/DebugInfo.cpp
-
unique_ptr createSPIRVObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)Construct a new SPIR-V writer instance.
Parameters
MOTW - The target specific SPIR-V writer subclass.OS - The stream to write to.Defined at line 49 of file llvm/lib/MC/SPIRVObjectWriter.cpp
-
unique_ptr createXCOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)Defined at line 1720 of file llvm/lib/MC/XCOFFObjectWriter.cpp
-
BasicBlock * InsertPreheaderForLoop (Loop * L, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)InsertPreheaderForLoop - Once we discover that a loop doesn't have a
preheader, this method is called to insert one. This method has two phases:
preheader insertion and analysis updating.
Defined at line 115 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp
-
int getReplayInlineAdvisor (Module & M, FunctionAnalysisManager & FAM, LLVMContext & Context, int OriginalAdvisor, const ReplayInlinerSettings & ReplaySettings, bool EmitRemarks, InlineContext IC)Defined at line 79 of file llvm/lib/Analysis/ReplayInlineAdvisor.cpp
-
std::pair<bool, bool> simplifyUsersOfIV (PHINode * CurrIV, ScalarEvolution * SE, DominatorTree * DT, LoopInfo * LI, const TargetTransformInfo * TTI, SmallVectorImpl<WeakTrackingVH> & Dead, SCEVExpander & Rewriter, IVVisitor * V)Simplify instructions that use this induction variable
by using ScalarEvolution to analyze the IV's recurrence.
Returns a pair where the first entry indicates that the function makes
changes and the second entry indicates that it introduced new opportunities
for loop unswitching.
Defined at line 1022 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
-
bool isAllocationFn (const Value * V, const TargetLibraryInfo * TLI)Tests if a value is a call or invoke to a library function that
allocates or reallocates memory (either malloc, calloc, realloc, or strdup
like).
Defined at line 287 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void viewRegion (const llvm::Function * F)Analyze the regions of a function and open its GraphViz
visualization in a viewer.
Useful to call in the debugger.
Includes the instructions in each BasicBlock.
The result of a new analysis may differ from the RegionInfo the pass
manager currently holds.
Parameters
F Function to analyze.Defined at line 239 of file llvm/lib/Analysis/RegionPrinter.cpp
-
void UpgradeCallsToIntrinsic (Function * F)This is an auto-upgrade hook for any old intrinsic function syntaxes
which need to have both the function updated as well as all calls updated
to the new function. This should only be run in a post-processing fashion
so that it can update all calls to the old function.
Defined at line 5549 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeAssumptionCacheTrackerPass (PassRegistry & )Defined at line 309 of file llvm/lib/Analysis/AssumptionCache.cpp
-
uint16_t getPointerAuthStableSipHash (StringRef S)Compute a stable non-zero 16-bit hash of the given string.
The exact algorithm is the little-endian interpretation of the
non-doubled (i.e. 64-bit) result of applying a SipHash-2-4 using
a specific seed value which can be found in the source.
This 64-bit result is truncated to a non-zero 16-bit value.
We use a 16-bit discriminator because ARM64 can efficiently load
a 16-bit immediate into the high bits of a register without disturbing
the remainder of the value, which serves as a nice blend operation.
16 bits is also sufficiently compact to not inflate a loader relocation.
We disallow zero to guarantee a different discriminator from the places
in the ABI that use a constant zero.
Defined at line 49 of file llvm/lib/Support/SipHash.cpp
-
void emitVarLenCodeEmitter (const RecordKeeper & R, raw_ostream & OS)Defined at line 518 of file llvm/utils/TableGen/Common/VarLenCodeEmitterGen.cpp
-
void printMIR (raw_ostream & OS, FunctionAnalysisManager & FAM, const MachineFunction & MF)Print MIR using New Pass Manager (uses FunctionAnalysisManager).
Defined at line 1029 of file llvm/lib/CodeGen/MIRPrinter.cpp
-
void spliceBB (InsertPoint IP, BasicBlock * New, bool CreateBranch, DebugLoc DL)Move the instruction after an InsertPoint to the beginning of another
BasicBlock.
The instructions after
are moved to the beginning of
which must
not have any PHINodes. If
is true, a branch instruction to
will be added such that there is no semantic change. Otherwise, the
insert block remains degenerate and it is up to the caller to insert a
terminator.
is used as the debug location for the branch instruction
if one is created.
Defined at line 311 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
void DecodePSRLDQMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Defined at line 112 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
int createMacroFusionDAGMutation (ArrayRef<MacroFusionPredTy> Predicates, bool BranchOnly)Create a DAG scheduling mutation to pair instructions back to back
for instructions that benefit according to the target-specific
predicate functions. shouldScheduleAdjacent will be true if any of the
provided predicates are true.
If BranchOnly is true, only branch instructions with one of their
predecessors will be fused.
Defined at line 226 of file llvm/lib/CodeGen/MacroFusion.cpp
-
Constant * ConstantFoldInsertElementInstruction (Constant * Val, Constant * Elt, Constant * Idx)Attempt to constant fold an insertelement instruction with the
specified operands and indices. The constant result is returned if
successful; if not, null is returned.
Defined at line 398 of file llvm/lib/IR/ConstantFold.cpp
-
const SCEV * normalizeForPostIncUse (const SCEV * S, const PostIncLoopSet & Loops, ScalarEvolution & SE, bool CheckInvertible)Normalize
to be post-increment for all loops present in
Returns nullptr if the result is not invertible and
is true.
Defined at line 97 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
-
void detachDeadBlocks (ArrayRef<BasicBlock *> BBs, SmallVectorImpl<DominatorTree::UpdateType> * Updates, bool KeepOneInputPHIs)Replace contents of every block in
with single unreachable
instruction. If
is specified, collect all necessary DT updates
into this vector. If
is true, one-input Phis in
successors of blocks being deleted will be preserved.
Defined at line 104 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void detachDeadBlocks (ArrayRef<BasicBlock *> BBs, int * Updates, bool KeepOneInputPHIs)Replace contents of every block in
with single unreachable
instruction. If
is specified, collect all necessary DT updates
into this vector. If
is true, one-input Phis in
successors of blocks being deleted will be preserved.
Defined at line of file
-
void findDevirtualizableCallsForTypeCheckedLoad (SmallVectorImpl<DevirtCallSite> & DevirtCalls, SmallVectorImpl<Instruction *> & LoadedPtrs, SmallVectorImpl<Instruction *> & Preds, bool & HasNonCallUses, const CallInst * CI, DominatorTree & DT)Given a call to the intrinsic
@
llvm.type.checked.load, find all
devirtualizable call sites based on the call and return them in DevirtCalls.
Defined at line 109 of file llvm/lib/Analysis/TypeMetadataUtils.cpp
-
Error writeArchiveToStream (raw_ostream & Out, ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, optional IsEC, function_ref Warn)Write an archive directly to an output stream.
Defined at line 1030 of file llvm/lib/Object/ArchiveWriter.cpp
-
FunctionPass * createUnreachableBlockEliminationPass ()createUnreachableBlockEliminationPass - The LLVM code generator does not
work well with unreachable basic blocks (what live ranges make sense for a
block that cannot be reached?). As such, a code generator should either
not instruction select unreachable blocks, or run this pass as its
last LLVM modifying pass to clean up blocks that are not reachable from
the entry block.
Defined at line 62 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp
-
void initializeAtomicExpandLegacyPass (PassRegistry & )Defined at line 183 of file llvm/lib/CodeGen/AtomicExpandPass.cpp
-
bool expandRemainderUpTo64Bits (BinaryOperator * Rem)Generate code to calculate the remainder of two integers, replacing Rem
with the generated code. Uses ExpandReminder with a 64bit Rem.
Replace Rem with generated code.
Defined at line 504 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
FunctionPass * createX86IssueVZeroUpperPass ()This pass inserts AVX vzeroupper instructions before each call to avoid
transition penalty between functions encoded with AVX and SSE.
Defined at line 115 of file llvm/lib/Target/X86/X86VZeroUpper.cpp
-
void printPasses (raw_ostream & OS)Defined at line 595 of file llvm/tools/opt/NewPMDriver.cpp
-
const X86FoldTableEntry * lookupBroadcastFoldTableBySize (unsigned int MemOp, unsigned int BroadcastBits)Look up the broadcast folding table entry for this instruction from
the regular memory instruction.
Defined at line 324 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
bool isAllocationFn (const Value * V, function_ref GetTLI)Defined at line 291 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
char * microsoftDemangle (basic_string_view mangled_name, size_t * n_read, int * status, MSDemangleFlags Flags)Demangles the Microsoft symbol pointed at by mangled_name and returns it.
Returns a pointer to the start of a null-terminated demangled string on
success, or nullptr on error.
If n_read is non-null and demangling was successful, it receives how many
bytes of the input string were consumed.
status receives one of the demangle_ enum entries above if it's not nullptr.
Flags controls various details of the demangled representation.
Defined at line 2522 of file llvm/lib/Demangle/MicrosoftDemangle.cpp
-
unique_ptr createWasmDwoObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)Defined at line 1955 of file llvm/lib/MC/WasmObjectWriter.cpp
-
void splitModuleTransitiveFromEntryPoints (unique_ptr M, function_ref EntryPointCategorizer, function_ref Callback)Splits the given module
into parts. Each output part is passed to
for further possible processing. Each part corresponds to a
subset of the module that is transitively reachable from some entry point
group. Each entry point group is defined by
(EPC)
as follows: 1) If the function is not an entry point, then the Categorizer
returns std::nullopt. Therefore, the function doesn't belong to any group.
However, the function and global objects can still be associated with some
output parts if they are transitively used from some entry points. 2) If the
function belongs to an entry point group, then EPC returns an integer which
is an identifier of the group. If two entry points belong to one group, then
EPC returns the same identifier for both of them.
Let A and B be global objects in the module. The transitive dependency
relation is defined such that: If global object A is used by global object B
in any way (e.g., store, bitcast, phi node, call), then "A" -> "B".
Transitivity is defined such that: If "A" -> "B" and "B" -> "C", then "A" ->
"C". Examples of dependencies:
- Function FA calls function FB
- Function FA uses global variable GA
- Global variable GA references (is initialized with) function FB
- Function FA stores the address of function FB somewhere
The following cases are treated as dependencies between global objects:
1. Global object A is used by global object B in any way (store,
bitcast, phi node, call, etc.): an "A" -> "B" edge will be added to the
graph;
2. Function A performs an indirect call of a function with signature S, and
there is a function B with signature S. An "A" -> "B" edge will be added
to the graph;
FIXME: For now, the algorithm assumes no recursion in the input Module. This
will be addressed in the near future.
Defined at line 311 of file llvm/lib/Transforms/Utils/SplitModuleByCategory.cpp
-
basic_string getSubDirectoryPath (SubDirectoryType Type, ToolsetLayout VSLayout, const std::string & VCToolChainPath, ArchType TargetArch, StringRef SubdirParent)Get the path to a specific subdirectory in the current toolchain for
a given target architecture.
VS2017 changed the VC toolchain layout, so this should be used instead
of hardcoding paths.
Defined at line 338 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
Expected<std::string> getDefaultDebuginfodCacheDirectory ()Finds a default local file caching directory for the debuginfod client,
first checking DEBUGINFOD_CACHE_PATH.
Defined at line 97 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
bool isPassInPrintList (StringRef PassName)Return true if -filter-passes is empty or contains the pass name.
Defined at line 152 of file llvm/lib/IR/PrintPasses.cpp
-
void initializeBasicBlockMatchingAndInferencePass (PassRegistry & )Defined at line 82 of file llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
-
int getStandardCSEConfigForOpt (CodeGenOptLevel Level)Returns the standard expected CSEConfig for the given optimization level.
We have this logic here so targets can make use of it from their derived
TargetPassConfig, but can't put this logic into TargetPassConfig directly
because the CodeGen library can't depend on GlobalISel.
Defined at line 88 of file llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
-
bool hasAssumption (const CallBase & CB, const KnownAssumptionString & AssumptionStr)Return true if
or the callee has the assumption
attached.
Defined at line 73 of file llvm/lib/IR/Assumptions.cpp
-
std::optional<fp::ExceptionBehavior> convertStrToExceptionBehavior (StringRef )Returns a valid ExceptionBehavior enumerator when given a string
valid as input in constrained intrinsic exception behavior metadata.
Defined at line 66 of file llvm/lib/IR/FPEnv.cpp
-
Error decodeBase64 (StringRef Input, int & Output)Defined at line of file
-
CallBase & promoteCallWithIfThenElse (CallBase & CB, Function * Callee, MDNode * BranchWeights)Promote the given indirect call site to conditionally call
The
promoted direct call instruction is predicated on `CB.getCalledOperand() ==
Callee`.
This function creates an if-then-else structure at the location of the call
site. The original call site is moved into the "else" block. A clone of the
indirect call site is promoted, placed in the "then" block, and returned. If
is non-null, it will be used to set !prof metadata on the
new conditional branch.
Defined at line 567 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
bool expandMemMoveAsLoop (MemMoveInst * MemMove, const TargetTransformInfo & TTI)Expand
as a loop.
is not deleted. Returns true if the
memmove was lowered.
Defined at line 1013 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
Constant * ConstantFoldInstruction (const Instruction * I, const DataLayout & DL, const TargetLibraryInfo * TLI)ConstantFoldInstruction - Try to constant fold the specified instruction.
If successful, the constant result is returned, if not, null is returned.
Note that this fails if not all of the operands are constant. Otherwise,
this function can only fail when attempting to fold instructions like loads
and stores, which have no constant expression form.
Defined at line 1135 of file llvm/lib/Analysis/ConstantFolding.cpp
-
CaptureComponents PointerMayBeCaptured (const Value * V, bool ReturnCaptures, CaptureComponents Mask, function_ref StopFn, unsigned int MaxUsesToExplore)Return which components of the pointer may be captured. Only consider
components that are part of
Once
on the accumulated
components returns true, the traversal is aborted early. By default, this
happens when *any* of the components in
are captured.
This function only considers captures of the passed value via its def-use
chain, without considering captures of values it may be based on, or
implicit captures such as for external globals.
Defined at line 194 of file llvm/lib/Analysis/CaptureTracking.cpp
-
bool isFilterPassesEmpty ()Defined at line 158 of file llvm/lib/IR/PrintPasses.cpp
-
bool hasValidBranchWeightMD (const Instruction & I)Checks if an instructions has valid Branch Weight Metadata
Parameters
I The instruction to checkDefined at line 146 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeBasicBlockPathCloningPass (PassRegistry & )Defined at line 238 of file llvm/lib/CodeGen/BasicBlockPathCloning.cpp
-
void setKCFIType (Module & M, Function & F, StringRef MangledType)Sets the KCFI type for the function. Used for compiler-generated functions
that are indirectly called in instrumented code.
Defined at line 202 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
void DecodePALIGNRMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Defined at line 125 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool predicatesFoldable (Predicate P1, Predicate P2)Return true if both predicates match sign or if at least one of them is an
equality comparison (which is signless).
Defined at line 58 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
bool expandAtomicRMWToCmpXchg (AtomicRMWInst * AI, CreateCmpXchgInstFun CreateCmpXchg)Expand an atomic RMW instruction into a loop utilizing
cmpxchg. You'll want to make sure your target machine likes cmpxchg
instructions in the first place and that there isn't another, better,
transformation available (for example AArch32/AArch64 have linked loads).
This is useful in passes which can't rewrite the more exotic RMW
instructions directly into a platform specific intrinsics (because, say,
those intrinsics don't exist). If such a pass is able to expand cmpxchg
instructions directly however, then, with this function, it could avoid two
extra module passes (avoiding passes by `-atomic-expand` and itself).
Given: atomicrmw some_op iN* %addr, iN %incr ordering
The standard expansion we produce is:
[...]
%init_loaded = load atomic iN* %addr
br label %loop
loop:
%loaded = phi iN [ %init_loaded, %entry ], [ %new_loaded, %loop ]
%new = some_op iN %loaded, %incr
; This is what -atomic-expand will produce using this function on i686
targets:
%pair = cmpxchg iN* %addr, iN %loaded, iN %new_val
%new_loaded = extractvalue { iN, i1 } %pair, 0
%success = extractvalue { iN, i1 } %pair, 1
; End callback produced IR
br i1 %success, label %atomicrmw.end, label %loop
atomicrmw.end:
[...]
Returns true if the containing function was modified.
Defined at line 1719 of file llvm/lib/CodeGen/AtomicExpandPass.cpp
-
GlobalVariable * UpgradeGlobalVariable (GlobalVariable * GV)This checks for global variables which should be upgraded. If it requires
upgrading, returns a pointer to the upgraded variable.
Defined at line 1835 of file llvm/lib/IR/AutoUpgrade.cpp
-
DISubprogram * getDISubprogram (const MDNode * Scope)Find subprogram that is enclosing this scope.
Defined at line 151 of file llvm/lib/IR/DebugInfo.cpp
-
Pass * createLoopStrengthReducePass ()===----------------------------------------------------------------------===//
LoopStrengthReduce - This pass is strength reduces GEP instructions that use
a loop's canonical induction variable as one of their indices.
Defined at line 7162 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
-
bool matchBroadcastSize (const X86FoldTableEntry & Entry, unsigned int BroadcastBits)Defined at line 308 of file llvm/lib/Target/X86/X86InstrFoldTables.cpp
-
void setGlobalVariableLargeSection (const Triple & TargetTriple, GlobalVariable & GV)Place global in a large section for x86-64 ELF binaries to mitigate
relocation overflow pressure. This can be be used for metadata globals that
aren't directly accessed by code, which has no performance impact.
Defined at line 112 of file llvm/lib/Transforms/Utils/Instrumentation.cpp
-
bool prettyPrintRegisterOp (DWARFUnit * U, raw_ostream & OS, DIDumpOptions DumpOpts, uint8_t Opcode, ArrayRef Operands)Pretty print a register opcode and operands.
returns true if the Op was successfully printed
Parameters
U within the context of this Dwarf unit, if any.OS to this streamDumpOpts with these optionsOpcode to printOperands to the opcodeDefined at line 341 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
bool isDereferenceableAndAlignedPointer (const Value * V, Align Alignment, const APInt & Size, const DataLayout & DL, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)Returns true if V is always dereferenceable for Size byte with alignment
greater or equal than requested. If the context instruction is specified
performs context-sensitive analysis and returns true if the pointer is
dereferenceable at the specified instruction.
Defined at line 215 of file llvm/lib/Analysis/Loads.cpp
-
void ComputeValueTypes (const DataLayout & DL, Type * Ty, SmallVectorImpl<Type *> & Types, SmallVectorImpl<TypeSize> * Offsets, TypeSize StartingOffset)Given an LLVM IR type, compute non-aggregate subtypes. Optionally also
compute their offsets.
Defined at line 72 of file llvm/lib/CodeGen/Analysis.cpp
-
bool applyDebugifyMetadata (Module & M, int Functions, StringRef Banner, std::function<bool (DIBuilder &, Function &)> ApplyToMF)Add synthesized debug information to a module.
Parameters
M The module to add debug information to.Functions A range of functions to add debug information to.Banner A prefix string to add to debug/error messages.ApplyToMF A call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified.Defined at line of file
-
bool applyDebugifyMetadata (Module & M, iterator_range Functions, StringRef Banner, function ApplyToMF)Add synthesized debug information to a module.
Parameters
M The module to add debug information to.Functions A range of functions to add debug information to.Banner A prefix string to add to debug/error messages.ApplyToMF A call back that will add debug information to the MachineFunction for a Function. If nullptr, then the MachineFunction (if any) will not be modified.Defined at line 138 of file llvm/lib/Transforms/Utils/Debugify.cpp
-
void setCurrentDebugTypes (const char ** Types, unsigned int Count)Set the current debug type, as if the -debug-only=X
option were specified. Note that DebugFlag also needs to be set to true for
debug output to be produced.
Defined at line 111 of file llvm/lib/Support/Debug.cpp
-
FunctionPass * createBreakCriticalEdgesPass ()===----------------------------------------------------------------------===//
BreakCriticalEdges - Break all of the critical edges in the CFG by inserting
a dummy basic block. This pass may be "required" by passes that cannot deal
with critical edges. For this usage, a pass must call:
AU.addRequiredID(BreakCriticalEdgesID);
This pass obviously invalidates the CFG, but can update forward dominator
(set, immediate dominators, tree, and frontier) information.
Defined at line 80 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
-
FunctionPass * createX86IndirectBranchTrackingPass ()This pass inserts ENDBR instructions before indirect jump/call
destinations as part of CET IBT mechanism.
Defined at line 69 of file llvm/lib/Target/X86/X86IndirectBranchTracking.cpp
-
optional getArm64ECInsertionPointInMangledName (basic_string_view MangledName)Defined at line 2504 of file llvm/lib/Demangle/MicrosoftDemangle.cpp
-
bool DisplayGraph (StringRef Filename, bool wait, Name program)Defined at line 190 of file llvm/lib/Support/GraphWriter.cpp
-
CallBase * promoteCallWithIfThenElse (CallBase & CB, Function & Callee, PGOContextualProfile & CtxProf)Defined at line 579 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
std::unique_ptr<Module> CloneModule (const Module & M, ValueToValueMapTy & VMap, function_ref<bool (const GlobalValue *)> ShouldCloneDefinition)Return a copy of the specified module. The ShouldCloneDefinition function
controls whether a specific GlobalValue's definition is cloned. If the
function returns false, the module copy will contain an external reference
in place of the global definition.
Defined at line 52 of file llvm/lib/Transforms/Utils/CloneModule.cpp
-
FunctionCallee declareSanitizerInitFunction (Module & M, StringRef InitName, ArrayRef InitArgTypes, bool Weak)Defined at line 230 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
Spiller * createInlineSpiller (const Spiller::RequiredAnalyses & Analyses, MachineFunction & MF, VirtRegMap & VRM, VirtRegAuxInfo & VRAI, LiveRegMatrix * Matrix)Create and return a spiller that will insert spill code directly instead
of deferring though VirtRegMap.
Defined at line 233 of file llvm/lib/CodeGen/InlineSpiller.cpp
-
void computeKnownBits (const Value * V, KnownBits & Known, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Determine which bits of V are known to be either zero or one and return
them in the KnownZero/KnownOne bit sets.
This function is defined on values with integer type, values with pointer
type, and vectors of integers. In the case
where V is a vector, the known zero and known one values are the
same width as the vector element, and the bit is set only if it is true
for all of the elements in the vector.
Defined at line 152 of file llvm/lib/Analysis/ValueTracking.cpp
-
void parseWidenableGuard (const User * U, llvm::SmallVectorImpl<Value *> & Checks)The guard condition is expected to be in form of:
cond1
&
&
cond2
&
&
cond3 ...
or in case of widenable branch:
cond1
&
&
cond2
&
&
cond3
&
&
widenable_contidion ...
Method collects the list of checks, but skips widenable_condition.
Defined at line 138 of file llvm/lib/Analysis/GuardUtils.cpp
-
duration getDefaultDebuginfodTimeout ()Finds a default timeout for debuginfod HTTP requests. Checks
DEBUGINFOD_TIMEOUT environment variable, default is 90 seconds (90000 ms).
Defined at line 109 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
int getAssumptions (const Function & F)Return the set of all assumptions for the function
Defined at line 83 of file llvm/lib/IR/Assumptions.cpp
-
bool isFunctionInPrintList (StringRef FunctionName)Returns true if we should print the function.
Defined at line 160 of file llvm/lib/IR/PrintPasses.cpp
-
void initializeBasicBlockSectionsPass (PassRegistry & )Defined at line 141 of file llvm/lib/CodeGen/BasicBlockSections.cpp
-
void expandMemSetAsLoop (MemSetInst * MemSet)Expand
as a loop.
is not deleted.
Defined at line 1069 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
void EmitMapTable (const RecordKeeper & RK, raw_ostream & OS)===----------------------------------------------------------------------===//
Parse 'InstrMapping' records and use the information to form relationship
between instructions. These relations are emitted as tables along with the
functions to query them.
===----------------------------------------------------------------------===//
Defined at line 544 of file llvm/utils/TableGen/CodeGenMapTable.cpp
-
Value * simplifyAddInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)Given operands for an Add, fold the result or return null.
Defined at line 661 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
SmallString ComputeASanStackFrameDescription (const SmallVectorImpl<ASanStackVariableDescription> & Vars)Compute frame description, see DescribeAddressIfStack in ASan runtime.
Defined at line 96 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
void DeleteDeadBlock (BasicBlock * BB, DomTreeUpdater * DTU, bool KeepOneInputPHIs)Delete the specified block, which must have no predecessors.
Defined at line 145 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void DecodeVALIGNMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Defined at line 139 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Error writeArchive (StringRef ArcName, ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, unique_ptr OldArchiveBuf, optional IsEC, function_ref Warn)Defined at line 1320 of file llvm/lib/Object/ArchiveWriter.cpp
-
bool isNewLikeFn (const Value * V, const TargetLibraryInfo * TLI)Tests if a value is a call or invoke to a library function that
allocates memory via new.
Defined at line 300 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void initializeBarrierNoopPass (PassRegistry & )Defined at line 46 of file llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
-
void spliceBB (int & Builder, BasicBlock * New, bool CreateBranch)Splice a BasicBlock at an IRBuilder's current insertion point. Its new
insert location will stick to after the instruction before the insertion
point (instead of moving with the instruction the InsertPoint stores
internally).
Defined at line 338 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
void spliceBB (IRBuilder<> & Builder, BasicBlock * New, bool CreateBranch)Splice a BasicBlock at an IRBuilder's current insertion point. Its new
insert location will stick to after the instruction before the insertion
point (instead of moving with the instruction the InsertPoint stores
internally).
Defined at line of file
-
optional convertExceptionBehaviorToStr (ExceptionBehavior )For any ExceptionBehavior enumerator, returns a string valid as
input in constrained intrinsic exception behavior metadata.
Defined at line 75 of file llvm/lib/IR/FPEnv.cpp
-
void report_fatal_error (const char * reason, bool gen_crash_diag)Defined at line 95 of file llvm/lib/Support/ErrorHandling.cpp
-
const SCEV * normalizeForPostIncUseIf (const SCEV * S, NormalizePredTy Pred, ScalarEvolution & SE)Normalize
for all add recurrence sub-expressions for which
returns true.
Defined at line 115 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
-
unique_ptr parseIRFile (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, ParserCallbacks Callbacks, AsmParserContext * ParserContext)If the given file holds a bitcode image, return a Module for it.
Otherwise, attempt to parse it as LLVM Assembly and return a Module
for it.
Parameters
DataLayoutCallback Override datalayout in the llvm assembly.Defined at line 97 of file llvm/lib/IRReader/IRReader.cpp
-
bool nonStrictlyPostDominate (const BasicBlock * ThisBlock, const BasicBlock * OtherBlock, const DominatorTree * DT, const PostDominatorTree * PDT)In case that two BBs
and
are control flow
equivalent but they do not strictly dominate and post-dominate each
other, we determine if
is reached after
in the control flow.
Defined at line 405 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
bool ConstantFoldTerminator (BasicBlock * BB, bool DeleteDeadConditions, const TargetLibraryInfo * TLI, DomTreeUpdater * DTU)ConstantFoldTerminator - If a terminator instruction is predicated on a
constant value, convert it into an unconditional branch to the constant
destination. This is a nontrivial operation because the successors of this
basic block must have their PHI nodes updated.
Also calls RecursivelyDeleteTriviallyDeadInstructions() on any branch/switch
conditions and indirectbr addresses this might make dead if
DeleteDeadConditions is true.
Defined at line 134 of file llvm/lib/Transforms/Utils/Local.cpp
-
void thinLTOInternalizeAndPromoteInIndex (ModuleSummaryIndex & Index, function_ref<bool (StringRef, ValueInfo)> isExported, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing)Update the linkages in the given
to mark exported values
as external and non-exported values as internal.
Defined at line 554 of file llvm/lib/LTO/LTO.cpp
-
MachineFunctionPass * createGCEmptyBasicBlocksPass ()createGCEmptyBasicblocksPass - Empty basic blocks (basic blocks without
real code) appear as the result of optimization passes removing
instructions. These blocks confuscate profile analysis (e.g., basic block
sections) since they will share the address of their fallthrough blocks.
This pass garbage-collects such basic blocks.
Defined at line 97 of file llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp
-
bool UpgradeModuleFlags (Module & M)This checks for module flags which should be upgraded. It returns true if
module is modified.
Defined at line 5969 of file llvm/lib/IR/AutoUpgrade.cpp
-
DebugLoc getDebugValueLoc (DbgVariableRecord * DVR)Produce a DebugLoc to use for each dbg.declare that is promoted to a
dbg.value.
Defined at line 157 of file llvm/lib/IR/DebugInfo.cpp
-
void initializeBasicAAWrapperPassPass (PassRegistry & )Defined at line 2035 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp
-
bool expandDivisionUpTo32Bits (BinaryOperator * Div)Generate code to divide two integers of bitwidth up to 32 bits. Uses the
above routines and extends the inputs/truncates the outputs to operate
in 32 bits; that is, these routines are good for targets that have no
or very little support for smaller than 32 bit integer arithmetic.
Replace Div with emulation code.
Defined at line 551 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
RegAllocScore calculateRegAllocScore (const MachineFunction & MF, const MachineBlockFrequencyInfo & MBFI)Calculate a score. When comparing 2 scores for the same function but
different policies, the better policy would have a smaller score.
The implementation is the overload below (which is also easily unittestable)
Defined at line 77 of file llvm/lib/CodeGen/RegAllocScore.cpp
-
error_code errorToErrorCodeAndEmitErrors (LLVMContext & Ctx, Error Err)These functions are for converting Expected/Error values to
ErrorOr/std::error_code for compatibility with legacy clients. FIXME:
Remove these functions once no longer needed by the C and libLTO APIs.
Defined at line 1026 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
ScheduleDAGSDNodes * createBURRListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createBURRListDAGScheduler - This creates a bottom up register usage
reduction list scheduler.
Defined at line 3145 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
-
Constant * ConstantFoldShuffleVectorInstruction (Constant * V1, Constant * V2, ArrayRef Mask)Attempt to constant fold a shufflevector instruction with the
specified operands and mask. See class ShuffleVectorInst for a description
of the mask representation. The constant result is returned if successful;
if not, null is returned.
Defined at line 440 of file llvm/lib/IR/ConstantFold.cpp
-
void emitLinkerFlagsForGlobalCOFF (raw_ostream & OS, const GlobalValue * GV, const Triple & TT, Mangler & Mangler)Defined at line 214 of file llvm/lib/IR/Mangler.cpp
-
bool simplifyLoopIVs (Loop * L, ScalarEvolution * SE, DominatorTree * DT, LoopInfo * LI, const TargetTransformInfo * TTI, SmallVectorImpl<WeakTrackingVH> & Dead)Simplify users of induction variables within this
loop. This does not actually change or add IVs.
Defined at line 1035 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
-
int parseAssemblyString (StringRef AsmString, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, AsmParserContext * ParserContext)The function is a secondary interface to the LLVM Assembly Parser. It parses
an ASCII string that (presumably) contains LLVM Assembly code. It returns a
Module (intermediate representation) with the corresponding features. Note
that this does not verify that the generated Module is valid, so you should
run the verifier after parsing the file to check that it is okay.
Parse LLVM Assembly from a string
Parameters
AsmString The string containing assemblyErr Error result info.Context Context in which to allocate globals info.Slots The optional slot mapping that will be initialized during parsing.Defined at line 141 of file llvm/lib/AsmParser/Parser.cpp
-
basic_string AnnotateInlinePassName (InlineContext IC)Defined at line 622 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
void viewRegionOnly (llvm::RegionInfo * RI)Open a viewer to display the GraphViz vizualization of the analysis
result.
Useful to call in the debugger.
Shows only the BasicBlock names without their instructions.
Parameters
RI The analysis to display.Defined at line 243 of file llvm/lib/Analysis/RegionPrinter.cpp
-
char * rustDemangle (basic_string_view MangledName)Demangles a Rust v0 mangled symbol.
Defined at line 151 of file llvm/lib/Demangle/RustDemangle.cpp
-
int getAssumptions (const CallBase & CB)Return the set of all assumptions for the call
Defined at line 88 of file llvm/lib/IR/Assumptions.cpp
-
void initializeBlockFrequencyInfoWrapperPassPass (PassRegistry & )Defined at line 299 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp
-
void expandMemSetPatternAsLoop (MemSetPatternInst * MemSet)Expand
as a loop.
is not deleted.
Defined at line 1078 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
FunctionPass * createX86PadShortFunctions ()Return a pass that pads short functions with NOOPs.
This will prevent a stall when returning on the Atom.
Defined at line 96 of file llvm/lib/Target/X86/X86PadShortFunction.cpp
-
void EmitDecoder (const RecordKeeper & RK, raw_ostream & OS)Defined in DecoderEmitter.cpp
Defined at line 1621 of file llvm/utils/TableGen/DecoderEmitter.cpp
-
Constant * ConstantFoldConstant (const Constant * C, const DataLayout & DL, const TargetLibraryInfo * TLI)ConstantFoldConstant - Fold the constant using the specified DataLayout.
This function always returns a non-null constant: Either the folding result,
or the original constant if further folding is not possible.
Defined at line 1184 of file llvm/lib/Analysis/ConstantFolding.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const StackLifetime::LiveRange & R)Defined at line 176 of file llvm/include/llvm/Analysis/StackLifetime.h
-
void report_fatal_error (StringRef reason, bool gen_crash_diag)Defined at line 99 of file llvm/lib/Support/ErrorHandling.cpp
-
optional getAllocToken (AllocTokenMode Mode, const AllocTokenMetadata & Metadata, uint64_t MaxTokens)Calculates stable allocation token ID. Returns std::nullopt for stateful
modes that are only available in the AllocToken pass.
Parameters
Mode The token generation mode.Metadata The metadata about the allocation.MaxTokens The maximum number of tokens (must not be 0)Returns
The calculated allocation token ID, or std::nullopt.
Defined at line 50 of file llvm/lib/Support/AllocToken.cpp
-
bool simplifyLoop (Loop * L, DominatorTree * DT, LoopInfo * LI, ScalarEvolution * SE, AssumptionCache * AC, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)Simplify each loop in a loop nest recursively.
This takes a potentially un-simplified loop L (and its children) and turns
it into a simplified loop nest with preheaders and single backedges. It will
update
and
analyses if they're non-null, and LCSSA if
is true.
Defined at line 697 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp
-
bool formDedicatedExitBlocks (Loop * L, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)Ensure that all exit blocks of the loop are dedicated exits.
For any loop exit block with non-loop predecessors, we split the loop
predecessors to use a dedicated loop exit block. We update the dominator
tree and loop info if provided, and will preserve LCSSA if requested.
Defined at line 58 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
std::pair<std::unique_ptr<ReducerWorkItem>, bool> parseReducerWorkItem (StringRef ToolName, StringRef Filename, LLVMContext & Ctxt, std::unique_ptr<TargetMachine> & TM, bool IsMIR)Defined at line of file
-
bool useUniversalCRT (ToolsetLayout VSLayout, const std::string & VCToolChainPath, ArchType TargetArch, llvm::vfs::FileSystem & VFS)Check if the Include path of a specified version of Visual Studio contains
specific header files. If not, they are probably shipped with Universal CRT.
Defined at line 393 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
Value * extractWidenableCondition (const User * U)Returns widenable_condition if it exists in the expression tree rooting from
and has only one use.
Defined at line 151 of file llvm/lib/Analysis/GuardUtils.cpp
-
MDNode * getBranchWeightMDNode (const Instruction & I)Get the branch weights metadata node
Parameters
I The Instruction to get the weights from.Defined at line 175 of file llvm/lib/IR/ProfDataUtils.cpp
-
error_code getRandomBytes (void * Buffer, size_t Size)Get random vector of specified size
Defined at line 70 of file llvm/lib/Support/RandomNumberGenerator.cpp
-
Value * simplifySubInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)Given operands for a Sub, fold the result or return null.
Defined at line 892 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
basic_string getDebuginfodSourceUrlPath (ArrayRef ID, StringRef SourceFilePath)Get the full URL path for a source request of a given BuildID and file
path.
Defined at line 123 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void DecodePSHUFMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for pshufd/pshufw/vpermilpd/vpermilps.
Defined at line 148 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void guessSuccessors (const MachineBasicBlock & MBB, SmallVectorImpl<MachineBasicBlock *> & Result, bool & IsFallthrough)Determine a possible list of successors of a basic block based on the
basic block machine operand being used inside the block. This should give
you the correct list of successor blocks in most cases except for things
like jump tables where the basic block references can't easily be found.
The MIRPRinter will skip printing successors if they match the result of
this function and the parser will use this function to construct a list if
it is missing.
Defined at line 675 of file llvm/lib/CodeGen/MIRPrinter.cpp
-
ModulePass * createRuntimeLibraryInfoWrapperPass ()Defined at line 47 of file llvm/lib/Analysis/RuntimeLibcallInfo.cpp
-
void initializeBranchFolderLegacyPass (PassRegistry & )Defined at line 120 of file llvm/lib/CodeGen/BranchFolding.cpp
-
Function * createSanitizerCtor (Module & M, StringRef CtorName)Creates sanitizer constructor function.
Returns
Returns pointer to constructor.
Defined at line 243 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
bool isMallocOrCallocLikeFn (const Value * V, const TargetLibraryInfo * TLI)Tests if a value is a call or invoke to a library function that
allocates memory similar to malloc or calloc.
Defined at line 306 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void report_fatal_error (const Twine & reason, bool gen_crash_diag)Defined at line 103 of file llvm/lib/Support/ErrorHandling.cpp
-
SmallVector GetShadowBytes (const SmallVectorImpl<ASanStackVariableDescription> & Vars, const ASanStackFrameLayout & Layout)Returns shadow bytes with marked red zones. This shadow represents the state
if the stack frame when all local variables are inside of the own scope.
Defined at line 114 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
MachineFunctionPass * createBasicBlockSectionsPass ()createBasicBlockSections Pass - This pass assigns sections to machine
basic blocks and is enabled with -fbasic-block-sections.
Defined at line 494 of file llvm/lib/CodeGen/BasicBlockSections.cpp
-
char * dlangDemangle (basic_string_view MangledName)Demangles a D mangled symbol.
Defined at line 565 of file llvm/lib/Demangle/DLangDemangle.cpp
-
void UpgradeNVVMAnnotations (Module & M)Convert legacy nvvm.annotations metadata to appropriate function
attributes.
Defined at line 5782 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeBranchProbabilityInfoWrapperPassPass (PassRegistry & )Defined at line 68 of file llvm/lib/Analysis/BranchProbabilityInfo.cpp
-
MCStreamer * createNullStreamer (MCContext & Ctx)Create a dummy machine code streamer, which does nothing. This is useful for
timing the assembler front end.
Defined at line 51 of file llvm/lib/MC/MCNullStreamer.cpp
-
Pass * createLoopTermFoldPass ()===----------------------------------------------------------------------===//
LoopTermFold - This pass attempts to eliminate the last use of an IV in
a loop terminator instruction by rewriting it in terms of another IV.
Expected to be run immediately after LSR.
Defined at line 375 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp
-
bool stripDebugifyMetadata (Module & M)Strip out all of the metadata and debug info inserted by debugify. If no
llvm.debugify module-level named metadata is present, this is a no-op.
Returns true if any change was made.
Defined at line 306 of file llvm/lib/Transforms/Utils/Debugify.cpp
-
bool addAssumptions (Function & F, const DenseSet<StringRef> & Assumptions)Appends the set of assumptions
to
.
Defined at line 93 of file llvm/lib/IR/Assumptions.cpp
-
bool addAssumptions (Function & F, const int & Assumptions)Appends the set of assumptions
to
.
Defined at line of file
-
void emitLinkerFlagsForUsedCOFF (raw_ostream & OS, const GlobalValue * GV, const Triple & T, Mangler & M)Defined at line 280 of file llvm/lib/IR/Mangler.cpp
-
FunctionPass * createScalarizerPass (const ScalarizerPassOptions & Options)Create a legacy pass manager instance of the Scalarizer pass
Defined at line 453 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp
-
void expandAtomicMemCpyAsLoop (AnyMemCpyInst * AtomicMemCpy, const TargetTransformInfo & TTI, ScalarEvolution * SE)Expand
as a loop.
is not deleted.
Defined at line 1087 of file llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
-
RegAllocScore calculateRegAllocScore (const MachineFunction & MF, llvm::function_ref<double (const MachineBasicBlock &)> GetBBFreq, llvm::function_ref<bool (const MachineInstr &)> IsTriviallyRematerializable)Implementation of the above, which is also more easily unittestable.
Defined at line 90 of file llvm/lib/CodeGen/RegAllocScore.cpp
-
bool runPassPipeline (StringRef Arg0, Module & M, TargetMachine * TM, TargetLibraryInfoImpl * TLII, ToolOutputFile * Out, ToolOutputFile * ThinLinkOut, ToolOutputFile * OptRemarkFile, StringRef PassPipeline, ArrayRef<PassPlugin> PassPlugins, ArrayRef<std::function<void (PassBuilder &)>> PassBuilderCallbacks, OutputKind OK, VerifierKind VK, bool ShouldPreserveAssemblyUseListOrder, bool ShouldPreserveBitcodeUseListOrder, bool EmitSummaryIndex, bool EmitModuleHash, bool EnableDebugify, bool VerifyDIPreserve, bool EnableProfcheck, bool UnifiedLTO)Driver function to run the new pass manager over a module.
This function only exists factored away from opt.cpp in order to prevent
inclusion of the new pass manager headers and the old headers into the same
file. It's interface is consequentially somewhat ad-hoc, but will go away
when the transition finishes.
ThinLTOLinkOut is only used when OK is OK_OutputThinLTOBitcode, and can be
nullptr.
Defined at line 354 of file llvm/tools/opt/NewPMDriver.cpp
-
void initializeBranchRelaxationLegacyPass (PassRegistry & )Defined at line 142 of file llvm/lib/CodeGen/BranchRelaxation.cpp
-
Pass * createLCSSAPass ()===----------------------------------------------------------------------===//
LCSSA - This pass inserts phi nodes at loop boundaries to simplify other loop
optimizations.
Defined at line 525 of file llvm/lib/Transforms/Utils/LCSSA.cpp
-
void PrintStatistics ()Print statistics to the file returned by CreateInfoOutputFile().
Defined at line 229 of file llvm/lib/Support/Statistic.cpp
-
ScheduleDAGSDNodes * createSourceListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createSourceListDAGScheduler - This creates a bottom up list scheduler that
schedules nodes in source code order when possible.
Defined at line 3158 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
-
error_code prepareTempFiles (int & FD, ArrayRef<StringRef> SR, int & FileName)Ensure temporary files exist, creating or re-using them.
contains
file descriptors (-1 indicates that the file should be created) and
contains the corresponding initial content.
will have
the filenames filled in when creating files. Return first error code (if
any) and stop.
Defined at line of file
-
error_code prepareTempFiles (SmallVector<int> & FD, ArrayRef SR, SmallVector<std::string> & FileName)Ensure temporary files exist, creating or re-using them.
contains
file descriptors (-1 indicates that the file should be created) and
contains the corresponding initial content.
will have
the filenames filled in when creating files. Return first error code (if
any) and stop.
Defined at line 178 of file llvm/lib/IR/PrintPasses.cpp
-
bool bypassSlowDivision (BasicBlock * BB, const int & BypassWidth)This optimization identifies DIV instructions in a BB that can be
profitably bypassed and carried out with a shorter, faster divide.
This optimization may add basic blocks immediately after BB; for obvious
reasons, you shouldn't pass those blocks to bypassSlowDivision.
Defined at line of file
-
bool bypassSlowDivision (BasicBlock * BB, const DenseMap<unsigned int, unsigned int> & BypassWidth)This optimization identifies DIV instructions in a BB that can be
profitably bypassed and carried out with a shorter, faster divide.
This optimization may add basic blocks immediately after BB; for obvious
reasons, you shouldn't pass those blocks to bypassSlowDivision.
Defined at line 447 of file llvm/lib/Transforms/Utils/BypassSlowDivision.cpp
-
const SCEV * denormalizeForPostIncUse (const SCEV * S, const PostIncLoopSet & Loops, ScalarEvolution & SE)Denormalize
to be post-increment for all loops present in
Defined at line 120 of file llvm/lib/Analysis/ScalarEvolutionNormalization.cpp
-
bool isReachedBefore (const Instruction * I0, const Instruction * I1, const DominatorTree * DT, const PostDominatorTree * PDT)Check if I0 is reached before I1 in the control flow.
Defined at line 435 of file llvm/lib/Transforms/Utils/CodeMoverUtils.cpp
-
KnownBits computeKnownBits (const Value * V, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Returns the known bits rather than passing by reference.
Defined at line 161 of file llvm/lib/Analysis/ValueTracking.cpp
-
MachineFunctionPass * createBasicBlockPathCloningPass ()Defined at line 260 of file llvm/lib/CodeGen/BasicBlockPathCloning.cpp
-
void initializeBreakCriticalEdgesPass (PassRegistry & )Defined at line 74 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
-
bool expandDivisionUpTo64Bits (BinaryOperator * Div)Generate code to divide two integers of bitwidth up to 64 bits. Uses the
above routines and extends the inputs/truncates the outputs to operate
in 64 bits.
Replace Div with emulation code.
Defined at line 599 of file llvm/lib/Transforms/Utils/IntegerDivision.cpp
-
void PrintStatistics (raw_ostream & OS)Print statistics to the given output stream.
Defined at line 176 of file llvm/lib/Support/Statistic.cpp
-
FunctionPass * createX86FixupLEAs ()Return a pass that selectively replaces certain instructions (like add,
sub, inc, dec, some shifts, and some multiplies) by equivalent LEA
instructions, in order to eliminate execution delays in some processors.
Defined at line 213 of file llvm/lib/Target/X86/X86FixupLEAs.cpp
-
Value * simplifyMulInst (Value * LHS, Value * RHS, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)Given operands for a Mul, fold the result or return null.
Defined at line 964 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Expected<CachePruningPolicy> parseCachePruningPolicy (StringRef PolicyStr)Parse the given string as a cache pruning policy. Defaults are taken from a
default constructed CachePruningPolicy object.
For example: "prune_interval=30s:prune_after=24h:cache_size=50%"
which means a pruning interval of 30 seconds, expiration time of 24 hours
and maximum cache size of 50% of available disk space.
Defined at line 77 of file llvm/lib/Support/CachePruning.cpp
-
void DecodePSHUFHWMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for pshufhw.
Defined at line 164 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isPotentiallyReachable (const Instruction * From, const Instruction * To, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)Determine whether instruction 'To' is reachable from 'From', without passing
through any blocks in ExclusionSet, returning true if uncertain.
Determine whether there is a path from From to To within a single function.
Returns false only if we can prove that once 'From' has been executed then
'To' can not be executed. Conservatively returns true.
This function is linear with respect to the number of blocks in the CFG,
walking down successors from From to reach To, with a fixed threshold.
Using DT or LI allows us to answer more quickly. LI reduces the cost of
an entire loop of any number of blocks to be the same as the cost of a
single block. DT reduces the cost by allowing the search to terminate when
we find a block that dominates the block containing 'To'. DT is most useful
on branchy code but not loops, and LI is most useful on code with loops but
does not help on branchy code outside loops.
Defined at line 282 of file llvm/lib/Analysis/CFG.cpp
-
bool StripDebugInfo (Module & M)Strip debug info in the module if it exists.
To do this, we remove all calls to the debugger intrinsics and any named
metadata for debugging. We also remove debug locations for instructions.
Return true if module is modified.
Defined at line 612 of file llvm/lib/IR/DebugInfo.cpp
-
void initializeBreakFalseDepsPass (PassRegistry & )Defined at line 105 of file llvm/lib/CodeGen/BreakFalseDeps.cpp
-
void PrintStatisticsJSON (raw_ostream & OS)Print statistics in JSON format. This does include all global timers (
Defined at line 203 of file llvm/lib/Support/Statistic.cpp
-
void collectEphemeralRecipesForVPlan (VPlan & Plan, DenseSet<VPRecipeBase *> & EphRecipes)Collect a VPlan's ephemeral recipes (those used only by an assume).
Defined at line 322 of file llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
-
Expected<std::string> getCachedOrDownloadSource (ArrayRef ID, StringRef SourceFilePath)Fetches a specified source file by searching the default local cache
directory and server URLs.
Defined at line 132 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
Constant * ConstantFoldExtractValueInstruction (Constant * Agg, ArrayRef Idxs)Attempt to constant fold an extractvalue instruction with the
specified operands and indices. The constant result is returned if
successful; if not, null is returned.
Defined at line 499 of file llvm/lib/IR/ConstantFold.cpp
-
void DeleteDeadBlocks (ArrayRef<BasicBlock *> BBs, DomTreeUpdater * DTU, bool KeepOneInputPHIs)Delete the specified blocks from
The set of deleted blocks must have
no predecessors that are not being deleted themselves.
must have no
duplicating blocks. If there are loops among this set of blocks, all
relevant loop info updates should be done before this function is called.
If
is true, one-input Phis in successors of blocks
being deleted will be preserved.
Defined at line 150 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool getWindowsSDKDir (vfs::FileSystem & VFS, optional WinSdkDir, optional WinSdkVersion, optional WinSysRoot, std::string & Path, int & Major, std::string & WindowsSDKIncludeVersion, std::string & WindowsSDKLibVersion)Get Windows SDK installation directory.
Defined at line 402 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
basic_string computeLTOCacheKey (const lto::Config & Conf, const ModuleSummaryIndex & Index, StringRef ModuleID, const FunctionImporter::ImportMapTy & ImportList, const int & ExportList, const int & ResolvedODR, const int & DefinedGlobals, const int & CfiFunctionDefs, const int & CfiFunctionDecls)Computes a unique hash for the Module considering the current list of
export/import and other global analysis results.
Defined at line of file
-
basic_string computeLTOCacheKey (const lto::Config & Conf, const ModuleSummaryIndex & Index, StringRef ModuleID, const FunctionImporter::ImportMapTy & ImportList, const int & ExportList, const int & ResolvedODR, const GVSummaryMapTy & DefinedGlobals, const int & CfiFunctionDefs, const int & CfiFunctionDecls)Computes a unique hash for the Module considering the current list of
export/import and other global analysis results.
Defined at line 104 of file llvm/lib/LTO/LTO.cpp
-
bool isAllocLikeFn (const Value * V, const TargetLibraryInfo * TLI)Tests if a value is a call or invoke to a library function that
allocates memory (either malloc, calloc, or strdup like).
Defined at line 313 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void UpgradeARCRuntime (Module & M)Convert calls to ARC runtime functions to intrinsic calls and upgrade the
old retain release marker to new module flag format.
Defined at line 5847 of file llvm/lib/IR/AutoUpgrade.cpp
-
bool stripDebugInfo (Function & F)Defined at line 578 of file llvm/lib/IR/DebugInfo.cpp
-
void initializeCanonicalizeFreezeInLoopsPass (PassRegistry & )Defined at line 265 of file llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
-
bool addAssumptions (CallBase & CB, const int & Assumptions)Appends the set of assumptions
to
.
Defined at line of file
-
bool addAssumptions (CallBase & CB, const DenseSet<StringRef> & Assumptions)Appends the set of assumptions
to
.
Defined at line 97 of file llvm/lib/IR/Assumptions.cpp
-
RetainedKnowledge simplifyRetainedKnowledge (AssumeInst * Assume, RetainedKnowledge RK, AssumptionCache * AC, DominatorTree * DT)canonicalize the RetainedKnowledge RK. it is assumed that RK is part of
Assume. This will return an empty RetainedKnowledge if the knowledge is
useless.
Defined at line 318 of file llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
-
void ComputeValueVTs (const TargetLowering & TLI, const DataLayout & DL, Type * Ty, SmallVectorImpl<EVT> & ValueVTs, SmallVectorImpl<EVT> * MemVTs, SmallVectorImpl<TypeSize> * Offsets, TypeSize StartingOffset)ComputeValueVTs - Given an LLVM IR type, compute a sequence of
EVTs that represent all the individual underlying
non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in
with the in-memory offsets of each of the individual values.
Defined at line 119 of file llvm/lib/CodeGen/Analysis.cpp
-
Expected writeArchiveToBuffer (ArrayRef NewMembers, SymtabWritingMode WriteSymtab, Kind Kind, bool Deterministic, bool Thin, function_ref Warn)writeArchiveToBuffer is similar to writeArchive but returns the Archive in a
buffer instead of writing it out to a file.
Defined at line 1353 of file llvm/lib/Object/ArchiveWriter.cpp
-
MDNode * getValidBranchWeightMDNode (const Instruction & I)Get the valid branch weights metadata node
Parameters
I The Instruction to get the weights from.Defined at line 182 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeCFGSimplifyPassPass (PassRegistry & )Defined at line 435 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
-
bar * fub ()Defined at line 364 of file llvm/unittests/Support/Casting.cpp
-
void checkForCycles (const SDNode * N, const SelectionDAG * DAG, bool force)Defined at line 14393 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
optional getArm64ECMangledFunctionName (StringRef Name)Returns the ARM64EC mangled function name unless the input is already
mangled.
Defined at line 294 of file llvm/lib/IR/Mangler.cpp
-
bool isSafeToLoadUnconditionally (Value * V, Align Alignment, const APInt & Size, const DataLayout & DL, Instruction * ScanFrom, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)Check if executing a load of this pointer value cannot trap.
If DT and ScanFrom are specified this method performs context-sensitive
analysis and returns true if it is safe to load immediately before ScanFrom.
If it is not obviously safe to load from the specified pointer, we do
a quick local scan of the basic block containing
to determine
if the address is already accessed.
This uses the pointee type to determine how many bytes need to be safe to
load from the pointer.
Defined at line 435 of file llvm/lib/Analysis/Loads.cpp
-
std::pair<Function *, FunctionCallee> createSanitizerCtorAndInitFunctions (Module & M, StringRef CtorName, StringRef InitName, ArrayRef InitArgTypes, ArrayRef<Value *> InitArgs, StringRef VersionCheckName, bool Weak)Creates sanitizer constructor function, and calls sanitizer's init
function from it.
Returns
Returns pair of pointers to constructor, and init functions
respectively.
Defined at line 257 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
FunctionPass * createSCEVAAWrapperPass ()Creates an instance of
Defined at line 165 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
-
MachineFunctionPass * createBasicBlockMatchingAndInferencePass ()createBasicBlockMatchingAndInferencePass - This pass enables matching
and inference when using propeller.
Defined at line 193 of file llvm/lib/CodeGen/BasicBlockMatchingAndInference.cpp
-
void UpgradeSectionAttributes (Module & M)Defined at line 6112 of file llvm/lib/IR/AutoUpgrade.cpp
-
error_code cleanUpTempFiles (ArrayRef<std::string> FileName)Remove the temporary files in
Typically used in conjunction
with prepareTempFiles. Return first error code (if any) and stop..
Defined at line 211 of file llvm/lib/IR/PrintPasses.cpp
-
void initializeCFGuardPass (PassRegistry & )Defined at line 306 of file llvm/lib/Transforms/CFGuard/CFGuard.cpp
-
FunctionPass * createX86FixupInstTuning ()Return a pass that replaces equivalent slower instructions with faster
ones.
Defined at line 66 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp
-
Value * simplifySDivInst (Value * LHS, Value * RHS, bool IsExact, const SimplifyQuery & Q)Given operands for an SDiv, fold the result or return null.
Defined at line 1221 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void DecodePSHUFLWMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for pshuflw.
Defined at line 178 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
SmallVector GetShadowBytesAfterScope (const SmallVectorImpl<ASanStackVariableDescription> & Vars, const ASanStackFrameLayout & Layout)Returns shadow bytes with marked red zones and after scope. This shadow
represents the state if the stack frame when all local variables are outside
of the own scope.
Defined at line 133 of file llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp
-
Pass * createLoopUnrollPass (int OptLevel, bool OnlyWhenForced, bool ForgetAllSCEV, int Threshold, int Count, int AllowPartial, int Runtime, int UpperBound, int AllowPeeling)===----------------------------------------------------------------------===//
LoopUnroll - This pass is a simple loop unrolling pass.
Defined at line 1493 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
-
basic_string getDebuginfodExecutableUrlPath (ArrayRef ID)Get the full URL path for an executable request of a given BuildID.
Defined at line 138 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void initializeCFGuardLongjmpPass (PassRegistry & )Defined at line 57 of file llvm/lib/CodeGen/CFGuardLongjmp.cpp
-
bool isInstructionTriviallyDead (Instruction * I, const TargetLibraryInfo * TLI)Return true if the result produced by the instruction is not used, and the
instruction will return. Certain side-effecting instructions are also
considered dead if there are no uses of the instruction.
Defined at line 402 of file llvm/lib/Transforms/Utils/Local.cpp
-
CallBase & promoteCallWithVTableCmp (CallBase & CB, Instruction * VPtr, Function * Callee, ArrayRef AddressPoints, MDNode * BranchWeights)This is similar to `promoteCallWithIfThenElse` except that the condition to
promote a virtual call is that
is the same as any of
This function is expected to be used on virtual calls (a subset of indirect
calls).
is the virtual table address stored in the objects, and
contains vtable address points. A vtable address point is
a location inside the vtable that's referenced by vpointer in C++ objects.
TODO: sink the address-calculation instructions of indirect callee to the
indirect call fallback after transformation.
Defined at line 664 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
bool isReallocLikeFn (const Function * F)Tests if a function is a call or invoke to a library function that
reallocates memory (e.g., realloc).
Defined at line 320 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void viewRegionOnly (const llvm::Function * F)Analyze the regions of a function and open its GraphViz
visualization in a viewer.
Useful to call in the debugger.
Shows only the BasicBlock names without their instructions.
The result of a new analysis may differ from the RegionInfo the pass
manager currently holds.
Parameters
F Function to analyze.Defined at line 245 of file llvm/lib/Analysis/RegionPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AddressRange & R)Defined at line 64 of file llvm/lib/DebugInfo/GSYM/ExtractRanges.cpp
-
Intrinsic::ID getConstrainedIntrinsicID (const Instruction & Instr)Returns constrained intrinsic id to represent the given instruction in
strictfp function. If the instruction is already a constrained intrinsic or
does not have a constrained intrinsic counterpart, the function returns
zero.
Defined at line 92 of file llvm/lib/IR/FPEnv.cpp
-
void initializeCFIFixupPass (PassRegistry & )Defined at line 93 of file llvm/lib/CodeGen/CFIFixup.cpp
-
XXH128_hash_t xxh3_128bits (ArrayRef<uint8_t> data)XXH3's 128-bit variant.
Defined at line 1023 of file llvm/lib/Support/xxhash.cpp
-
void markRegisterParameterAttributes (Function * F)Handle -mregparm for the given function.
Note that this function is a rough approximation that only works for simple
function signatures; it does not apply other relevant attributes for
function signatures, including sign/zero-extension for arguments and return
values.
Defined at line 1430 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
ScheduleDAGSDNodes * createHybridListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel )createHybridListDAGScheduler - This creates a bottom up register pressure
aware list scheduler that make use of latency information to avoid stalls
for long latency instructions in low register pressure mode. In high
register pressure mode it schedules to reduce register pressure.
Defined at line 3172 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
-
BasicBlock * splitBB (InsertPoint IP, bool CreateBranch, DebugLoc DL, Twine Name)Split a BasicBlock at an InsertPoint, even if the block is degenerate
(missing the terminator).
llvm::SplitBasicBlock and BasicBlock::splitBasicBlock require a well-formed
BasicBlock.
is used for the new successor block. If
is true, a branch to the new successor will new created such that
semantically there is no change; otherwise the block of the insertion point
remains degenerate and it is the caller's responsibility to insert a
terminator.
is used as the debug location for the branch instruction
if one is created. Returns the new successor block.
Defined at line 353 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
Error write (MCStreamer & Out, ArrayRef Inputs, OnCuIndexOverflow OverflowOptValue, Dwarf64StrOffsetsPromotion StrOffsetsOptValue)Defined at line 677 of file llvm/lib/DWP/DWP.cpp
-
MachineFunctionPass * createMachineBlockHashInfoPass ()createMachineBlockHashInfoPass - This pass computes basic block hashes.
Defined at line 113 of file llvm/lib/CodeGen/MachineBlockHashInfo.cpp
-
void UpgradeFunctionAttributes (Function & F)Correct any IR that is relying on old function attribute behavior.
Defined at line 6185 of file llvm/lib/IR/AutoUpgrade.cpp
-
bool hasBranchWeightOrigin (const Instruction & I)Check if Branch Weight Metadata has an "expected" field from an llvm.expect*
intrinsic
Defined at line 150 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeCFIInstrInserterPass (PassRegistry & )Defined at line 150 of file llvm/lib/CodeGen/CFIInstrInserter.cpp
-
void reportFatalInternalError (const char * reason)Report a fatal error that likely indicates a bug in LLVM. It serves a
similar purpose as an assertion, but is always enabled, regardless of the
value of NDEBUG.
This will call installed error handlers (or print the message by default)
and then abort. This will produce a crash trace and *will* ask users to
report an LLVM bug.
Defined at line 140 of file llvm/lib/Support/ErrorHandling.cpp
-
FunctionPass * createX86FixupVectorConstants ()Return a pass that reduces the size of vector constant pool loads.
Defined at line 62 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp
-
Constant * ConstantFoldInsertValueInstruction (Constant * Agg, Constant * Val, ArrayRef Idxs)Attempt to constant fold an insertvalue instruction with the specified
operands and indices. The constant result is returned if successful; if
not, null is returned.
Defined at line 511 of file llvm/lib/IR/ConstantFold.cpp
-
bool nonMicrosoftDemangle (basic_string_view MangledName, std::string & Result, bool CanHaveLeadingDot, bool ParseParams)Defined at line 50 of file llvm/lib/Demangle/Demangle.cpp
-
bool collectDebugInfoMetadata (Module & M, int Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass)Collect original debug information before a pass.
Parameters
M The module to collect debug information from.Functions A range of functions to collect debug information from.DebugInfoBeforePass DI metadata before a pass.Banner A prefix string to add to debug/error messages.NameOfWrappedPass A name of a pass to add to debug/error messages.Defined at line of file
-
bool collectDebugInfoMetadata (Module & M, iterator_range Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass)Collect original debug information before a pass.
Parameters
M The module to collect debug information from.Functions A range of functions to collect debug information from.DebugInfoBeforePass DI metadata before a pass.Banner A prefix string to add to debug/error messages.NameOfWrappedPass A name of a pass to add to debug/error messages.Defined at line 366 of file llvm/lib/Transforms/Utils/Debugify.cpp
-
void ComputeValueVTs (const TargetLowering & TLI, const DataLayout & DL, Type * Ty, SmallVectorImpl<EVT> & ValueVTs, SmallVectorImpl<EVT> * MemVTs, SmallVectorImpl<uint64_t> * FixedOffsets, uint64_t StartingOffset)Defined at line 133 of file llvm/lib/CodeGen/Analysis.cpp
-
bool PointerMayBeCapturedBefore (const Value * V, bool ReturnCaptures, const Instruction * I, const DominatorTree * DT, bool IncludeI, unsigned int MaxUsesToExplore, const LoopInfo * LI)PointerMayBeCapturedBefore - Return true if this pointer value may be
captured by the enclosing function (which is required to exist). If a
DominatorTree is provided, only captures which happen before the given
instruction are considered. This routine can be expensive, so consider
caching the results. The boolean ReturnCaptures specifies whether
returning the value (or part of it) from the function counts as capturing
it or not. Captures by the provided instruction are considered if the
final parameter is true.
MaxUsesToExplore specifies how many uses the analysis should explore for
one value before giving up due too "too many uses". If MaxUsesToExplore
is zero, a default value is assumed.
This function only considers captures of the passed value via its def-use
chain, without considering captures of values it may be based on, or
implicit captures such as for external globals.
Defined at line 241 of file llvm/lib/Analysis/CaptureTracking.cpp
-
KnownBits computeKnownBits (const Value * V, const APInt & DemandedElts, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Returns the known bits rather than passing by reference.
Defined at line 169 of file llvm/lib/Analysis/ValueTracking.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AddressRanges & AR)Defined at line 68 of file llvm/lib/DebugInfo/GSYM/ExtractRanges.cpp
-
void initializeCallBrPreparePass (PassRegistry & )Defined at line 100 of file llvm/lib/CodeGen/CallBrPrepare.cpp
-
void reportFatalInternalError (StringRef reason)Defined at line 143 of file llvm/lib/Support/ErrorHandling.cpp
-
void DecodePSWAPMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Decodes a PSWAPD 3DNow! instruction.
Defined at line 192 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Expected<std::vector<RCToken>> tokenizeRC (StringRef Input, bool IsWindres)Tokenize Input.
In case no error occurred, the return value contains
tokens in order they were in the input file.
In case of any error, the return value contains
a textual representation of error.
Tokens returned by this function hold only references to the parts
of the Input. Memory buffer containing Input cannot be freed,
modified or reallocated.
Defined at line 399 of file llvm/tools/llvm-rc/ResourceScriptToken.cpp
-
Value * simplifyUDivInst (Value * LHS, Value * RHS, bool IsExact, const SimplifyQuery & Q)Given operands for a UDiv, fold the result or return null.
Defined at line 1233 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
optional getArm64ECDemangledFunctionName (StringRef Name)Returns the ARM64EC demangled function name, unless the input is not
mangled.
Defined at line 332 of file llvm/lib/IR/Mangler.cpp
-
bool EliminateUnreachableBlocks (Function & F, DomTreeUpdater * DTU, bool KeepOneInputPHIs)Delete all basic blocks from
that are not reachable from its entry
node. If
is true, one-input Phis in successors of
blocks being deleted will be preserved.
Defined at line 174 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Value * getReallocatedOperand (const CallBase * CB)If this is a call to a realloc function, return the reallocated operand.
Defined at line 324 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
Expected<std::string> getCachedOrDownloadExecutable (ArrayRef ID)Fetches an executable by searching the default local cache directory and
server URLs.
Defined at line 145 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void initializeCallGraphDOTPrinterPass (PassRegistry & )Defined at line 346 of file llvm/lib/Analysis/CallPrinter.cpp
-
void reportFatalInternalError (const Twine & reason)Defined at line 146 of file llvm/lib/Support/ErrorHandling.cpp
-
Constant * getPointerAtOffset (Constant * I, uint64_t Offset, Module & M, Constant * TopLevelGlobal)Processes a Constant recursively looking into elements of arrays, structs
and expressions to find a trivial pointer element that is located at the
given offset (relative to the beginning of the whole outer Constant).
Used for example from GlobalDCE to find an entry in a C++ vtable that
matches a vcall offset.
To support relative vtables, getPointerAtOffset can see through "relative
pointers", i.e. (sub-)expressions of the form of:
= ... {
i32 trunc (i64 sub (
i64 ptrtoint (
<type
>
to i64), i64 ptrtoint (...
to i64)
) to i32)
}
For such (sub-)expressions, getPointerAtOffset returns the
pointer.
Defined at line 145 of file llvm/lib/Analysis/TypeMetadataUtils.cpp
-
bool getUniversalCRTSdkDir (vfs::FileSystem & VFS, optional WinSdkDir, optional WinSdkVersion, optional WinSysRoot, std::string & Path, std::string & UCRTVersion)Defined at line 466 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
ModulePass * createModuleSummaryIndexWrapperPass ()===--------------------------------------------------------------------===//
createModuleSummaryIndexWrapperPass - This pass builds a ModuleSummaryIndex
object for the module, to be written to bitcode or LLVM assembly.
Defined at line 1189 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
Constant * ConstantFoldUnaryInstruction (unsigned int Opcode, Constant * V)Defined at line 540 of file llvm/lib/IR/ConstantFold.cpp
-
void initializeCallGraphViewerPass (PassRegistry & )Defined at line 342 of file llvm/lib/Analysis/CallPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, time_point TP)Defined at line 62 of file llvm/lib/Support/Chrono.cpp
-
raw_ostream & operator<< (raw_ostream & OS, int TP)Defined at line of file
-
Constant * ConstantFoldInstOperands (const Instruction * I, ArrayRef Ops, const DataLayout & DL, const TargetLibraryInfo * TLI, bool AllowNonDeterministic)ConstantFoldInstOperands - Attempt to constant fold an instruction with the
specified operands. If successful, the constant result is returned, if not,
null is returned. Note that this function can fail when attempting to
fold instructions like loads and stores, which have no constant expression
form.
In some cases, constant folding may return one value chosen from a set of
multiple legal return values. For example, the exact bit pattern of NaN
results is not guaranteed. Using such a result is usually only valid if
all uses of the original operation are replaced by the constant-folded
result. The
parameter controls whether this is
allowed.
Defined at line 1190 of file llvm/lib/Analysis/ConstantFolding.cpp
-
basic_string doSystemDiff (StringRef Before, StringRef After, StringRef OldLineFormat, StringRef NewLineFormat, StringRef UnchangedLineFormat)Perform a system based diff between
and
using
and
to control the
formatting of the output. Return an error message for any failures instead
of the diff.
Defined at line 215 of file llvm/lib/IR/PrintPasses.cpp
-
bool isLibFuncEmittable (const Module * M, const TargetLibraryInfo * TLI, LibFunc TheLibFunc)Check whether the library function is available on target and also that
it in the current Module is a Function with the right type.
Defined at line 1542 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
MachineFunctionPass * createMachineFunctionSplitterPass ()createMachineFunctionSplitterPass - This pass splits machine functions
using profile information.
Defined at line 227 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp
-
bool hasBranchWeightOrigin (const MDNode * ProfileData)Check if Branch Weight Metadata has an "expected" field from an llvm.expect*
intrinsic
Defined at line 155 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeCallGraphWrapperPassPass (PassRegistry & )Defined at line 315 of file llvm/lib/Analysis/CallGraph.cpp
-
raw_ostream & operator<< (raw_ostream & OS, time_point TP)Defined at line of file
-
FunctionPass * createX86OptimizeLEAs ()Return a pass that removes redundant LEA instructions and redundant address
recalculations.
Defined at line 314 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp
-
Constant * ConstantFoldBinaryInstruction (unsigned int Opcode, Constant * V1, Constant * V2)Defined at line 598 of file llvm/lib/IR/ConstantFold.cpp
-
basic_string recomputeLTOCacheKey (const std::string & Key, StringRef ExtraID)Recomputes the LTO cache key for a given key with an extra identifier.
Defined at line 355 of file llvm/lib/LTO/LTO.cpp
-
void DecodeSHUFPMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for shufp*.
Defined at line 201 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isPotentiallyReachable (const BasicBlock * From, const BasicBlock * To, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)Determine whether block 'To' is reachable from 'From', returning
true if uncertain.
Determine whether there is a path from From to To within a single function.
Returns false only if we can prove that once 'From' has been reached then
'To' can not be executed. Conservatively returns true.
Defined at line 258 of file llvm/lib/Analysis/CFG.cpp
-
basic_string getDebuginfodDebuginfoUrlPath (ArrayRef ID)Get the full URL path for a debug binary request of a given BuildID.
Defined at line 150 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
MDNode * UpgradeTBAANode (MDNode & TBAANode)If the given TBAA tag uses the scalar TBAA format, create a new node
corresponding to the upgrade to the struct-path aware TBAA format.
Otherwise return the
itself.
Defined at line 5568 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeCheckDebugMachineModulePass (PassRegistry & )Defined at line 123 of file llvm/lib/CodeGen/MachineCheckDebugify.cpp
-
Value * simplifySRemInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for an SRem, fold the result or return null.
Defined at line 1255 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
int createWinCOFFObjectWriter (int MOTW, raw_pwrite_stream & OS)Construct a new Win COFF writer instance.
Parameters
MOTW - The target specific WinCOFF writer subclass.OS - The stream to write to.Defined at line of file
-
unique_ptr createWinCOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)Construct a new Win COFF writer instance.
Parameters
MOTW - The target specific WinCOFF writer subclass.OS - The stream to write to.Defined at line 1239 of file llvm/lib/MC/WinCOFFObjectWriter.cpp
-
bool wouldInstructionBeTriviallyDead (const Instruction * I, const TargetLibraryInfo * TLI)Return true if the result produced by the instruction would have no side
effects if it was not used. This is equivalent to checking whether
isInstructionTriviallyDead would be true if the use count was 0.
Defined at line 421 of file llvm/lib/Transforms/Utils/Local.cpp
-
Error handleSection (const StringMap<std::pair<MCSection *, DWARFSectionKind>> & KnownSections, const MCSection * StrSection, const MCSection * StrOffsetSection, const MCSection * TypesSection, const MCSection * CUIndexSection, const MCSection * TUIndexSection, const MCSection * InfoSection, const object::SectionRef & Section, MCStreamer & Out, std::deque<SmallString<32>> & UncompressedSections, uint32_t (&)[8] ContributionOffsets, UnitIndexEntry & CurEntry, StringRef & CurStrSection, StringRef & CurStrOffsetSection, std::vector<StringRef> & CurTypesSection, std::vector<StringRef> & CurInfoSection, StringRef & AbbrevSection, StringRef & CurCUIndexSection, StringRef & CurTUIndexSection, SectionLengths & SectionLength)Defined at line 608 of file llvm/lib/DWP/DWP.cpp
-
void initializeCodeGenPrepareLegacyPassPass (PassRegistry & )Defined at line 541 of file llvm/lib/CodeGen/CodeGenPrepare.cpp
-
ScheduleDAGSDNodes * createILPListDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel )createILPListDAGScheduler - This creates a bottom up register pressure
aware list scheduler that tries to increase instruction level parallelism
in low register pressure mode. In high register pressure mode it schedules
to reduce register pressure.
Defined at line 3188 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
-
BasicBlock * splitBB (IRBuilderBase & Builder, bool CreateBranch, Twine Name)Split a BasicBlock at
insertion point, even if the block is
degenerate (missing the terminator). Its new insert location will stick to
after the instruction before the insertion point (instead of moving with the
instruction the InsertPoint stores internally).
Defined at line 364 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
Constant * ConstantFoldCompareInstruction (Predicate Predicate, Constant * C1, Constant * C2)Defined at line 1096 of file llvm/lib/IR/ConstantFold.cpp
-
bool isLibFuncEmittable (const Module * M, const TargetLibraryInfo * TLI, StringRef Name)Defined at line 1559 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
PHINode * createWideIV (const WideIVInfo & WI, LoopInfo * LI, ScalarEvolution * SE, SCEVExpander & Rewriter, DominatorTree * DT, SmallVectorImpl<WeakTrackingVH> & DeadInsts, unsigned int & NumElimExt, unsigned int & NumWidened, bool HasGuards, bool UsePostIncrementRanges)Widen Induction Variables - Extend the width of an IV to cover its
widest uses.
Defined at line 2282 of file llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
-
error_code identify_magic (const Twine & path, file_magic & result)Get and identify
type based on its content.
Parameters
path Input path.result Set to the type of file, or file_magic::unknown.Defined at line 281 of file llvm/lib/BinaryFormat/Magic.cpp
-
bool stripNonLineTableDebugInfo (Module & M)Downgrade the debug info in a module to contain only line table information.
In order to convert debug info to what -gline-tables-only would have
created, this does the following:
1) Delete all debug intrinsics.
2) Delete all non-CU named metadata debug info nodes.
3) Create new DebugLocs for each instruction.
4) Create a new CU debug info, and similarly for every metadata node
that's reachable from the CU debug info.
All debug type metadata nodes are unreachable and garbage collected.
Defined at line 852 of file llvm/lib/IR/DebugInfo.cpp
-
unsigned int getBranchWeightOffset (const MDNode * ProfileData)Return the offset to the first branch weight data
Defined at line 167 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeComplexDeinterleavingLegacyPassPass (PassRegistry & )Defined at line 531 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
-
ModulePass * createGlobalDCEPass ()Public interface to the GlobalDCEPass.
Defined at line 62 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp
-
FunctionPass * createPromoteMemoryToRegisterPass ()createPromoteMemoryToRegister - Provide an entry point to create this pass.
Defined at line 114 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp
-
FunctionPass * createX86FixupSetCC ()Return a pass that transforms setcc + movzx pairs into xor + setcc.
Defined at line 65 of file llvm/lib/Target/X86/X86FixupSetCC.cpp
-
bool pruneCache (StringRef Path, CachePruningPolicy Policy, const std::vector<std::unique_ptr<MemoryBuffer>> & Files)Peform pruning using the supplied policy, returns true if pruning
occurred, i.e. if Policy.Interval was expired.
Check whether cache pruning happens using the supplied policy, adds a
ThinLTO warning if cache_size_bytes or cache_size_files is too small for the
current link job. The warning recommends the user to consider adjusting
--thinlto-cache-policy.
As a safeguard against data loss if the user specifies the wrong directory
as their cache directory, this function will ignore files not matching the
pattern "llvmcache-*".
Defined at line 145 of file llvm/lib/Support/CachePruning.cpp
-
bool pruneCache (StringRef Path, CachePruningPolicy Policy, const int & Files)Peform pruning using the supplied policy, returns true if pruning
occurred, i.e. if Policy.Interval was expired.
Check whether cache pruning happens using the supplied policy, adds a
ThinLTO warning if cache_size_bytes or cache_size_files is too small for the
current link job. The warning recommends the user to consider adjusting
--thinlto-cache-policy.
As a safeguard against data loss if the user specifies the wrong directory
as their cache directory, this function will ignore files not matching the
pattern "llvmcache-*".
Defined at line of file
-
MachineFunctionPass * createStaticDataSplitterPass ()createStaticDataSplitterPass - This is a machine-function pass that
categorizes static data hotness using profile information.
Defined at line 269 of file llvm/lib/CodeGen/StaticDataSplitter.cpp
-
void initializeConstantHoistingLegacyPassPass (PassRegistry & )Defined at line 132 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
-
KnownBits computeKnownBits (const Value * V, const APInt & DemandedElts, const SimplifyQuery & Q, unsigned int Depth)Determine which bits of V are known to be either zero or one and return
them.
Defined at line 2372 of file llvm/lib/Analysis/ValueTracking.cpp
-
FunctionHashInfo StructuralHashWithDifferences (const Function & F, IgnoreOperandFunc IgnoreOp)Computes a structural hash of a given function, considering the structure
and content of the function's instructions while allowing for selective
ignoring of certain operands based on custom criteria. This hash can be used
to identify functions that are structurally similar or identical, which is
useful in optimizations, deduplication, or analysis tasks.
Parameters
F The function to hash.IgnoreOp A callable that takes an instruction and an operand index, and returns true if the operand should be ignored in the hash computation.Returns
A FunctionHashInfo structure
Defined at line 345 of file llvm/lib/IR/StructuralHash.cpp
-
void DecodeUNPCKHMask (unsigned int NumElts, unsigned int ScalarBits, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for unpckhps/unpckhpd and punpckh*.
Defined at line 218 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isDereferenceableAndAlignedInLoop (LoadInst * LI, Loop * L, ScalarEvolution & SE, DominatorTree & DT, AssumptionCache * AC, SmallVectorImpl<const SCEVPredicate *> * Predicates)Return true if we can prove that the given load (which is assumed to be
within the specified loop) would access only dereferenceable memory, and
be properly aligned on every iteration of the specified loop regardless of
its placement within the loop. (i.e. does not require predication beyond
that required by the header itself and could be hoisted into the header
if desired.) This is more powerful than the variants above when the
address loaded from is analyzeable by SCEV.
Defined at line 289 of file llvm/lib/Analysis/Loads.cpp
-
Constant * ConstantFoldGetElementPtr (Type * Ty, Constant * C, optional InRange, ArrayRef Idxs)Defined at line 1310 of file llvm/lib/IR/ConstantFold.cpp
-
LoopUnrollResult UnrollLoop (Loop * L, UnrollLoopOptions ULO, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const llvm::TargetTransformInfo * TTI, OptimizationRemarkEmitter * ORE, bool PreserveLCSSA, Loop ** RemainderLoop, AAResults * AA)Unroll the given loop by Count. The loop must be in LCSSA form. Unrolling
can only fail when the loop's latch block is not terminated by a conditional
branch instruction. However, if the trip count (and multiple) are not known,
loop unrolling will mostly produce more code that is no faster.
If Runtime is true then UnrollLoop will try to insert a prologue or
epilogue that ensures the latch has a trip multiple of Count. UnrollLoop
will not runtime-unroll the loop if computing the run-time trip count will
be expensive and AllowExpensiveTripCount is false.
The LoopInfo Analysis that is passed will be kept consistent.
This utility preserves LoopInfo. It will also preserve ScalarEvolution and
DominatorTree if they are non-null.
If RemainderLoop is non-null, it will receive the remainder loop (if
required and not fully unrolled).
Defined at line 458 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp
-
bool isLibFreeFunction (const Function * F, const LibFunc TLIFn)isLibFreeFunction - Returns true if the function is a builtin free()
Defined at line 529 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
Expected<std::string> getCachedOrDownloadDebuginfo (ArrayRef ID)Fetches a debug binary by searching the default local cache directory and
server URLs.
Defined at line 157 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
unsigned int getNumBranchWeights (const MDNode & ProfileData)Defined at line 171 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeCycleInfoWrapperPassPass (PassRegistry & )Defined at line 59 of file llvm/lib/Analysis/CycleAnalysis.cpp
-
Value * simplifyURemInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for a URem, fold the result or return null.
Defined at line 1266 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
std::pair<Function *, Constant *> getFunctionAtVTableOffset (GlobalVariable * GV, uint64_t Offset, Module & M)Given a vtable and a specified offset, returns the function and the trivial
pointer at the specified offset in pair iff the pointer at the specified
offset is a function or an alias to a function. Returns a pair of nullptr
otherwise.
Defined at line 223 of file llvm/lib/Analysis/TypeMetadataUtils.cpp
-
Instruction * UpgradeBitCastInst (unsigned int Opc, Value * V, Type * DestTy, Instruction *& Temp)This is an auto-upgrade for bitcast between pointers with different
address spaces: the instruction is replaced by a pair ptrtoint+inttoptr.
Defined at line 5594 of file llvm/lib/IR/AutoUpgrade.cpp
-
unique_ptr createWinCOFFDwoObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)Defined at line 1244 of file llvm/lib/MC/WinCOFFObjectWriter.cpp
-
int createWinCOFFDwoObjectWriter (int MOTW, raw_pwrite_stream & OS, raw_pwrite_stream & DwoOS)Defined at line of file
-
bool FoldSingleEntryPHINodes (BasicBlock * BB, MemoryDependenceResults * MemDep)We know that BB has one predecessor. If there are any single-entry PHI nodes
in it, fold them away. This handles the case when all entries to the PHI
nodes in a block are guaranteed equal, such as when the block has exactly
one predecessor.
Defined at line 194 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void initializeDAEPass (PassRegistry & )Defined at line 94 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
-
FunctionPass * createX86AvoidStoreForwardingBlocks ()Return a pass that avoids creating store forward block issues in the hardware.
Defined at line 128 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
-
bool EliminateNewDuplicatePHINodes (BasicBlock * BB, phi_iterator_impl FirstExistingPN)Defined at line 272 of file llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp
-
MCStreamer * createAsmStreamer (MCContext & Ctx, int OS, int InstPrint, int CE, int TAB)Create a machine code streamer which will print out assembly for the native
target, suitable for compiling with a native assembler.
Parameters
InstPrint - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.CE - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership ofTAB - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership ofShowInst - Whether to show the MCInst representation inline with the assembly.Defined at line of file
-
MCStreamer * createAsmStreamer (MCContext & Ctx, std::unique_ptr<formatted_raw_ostream> OS, std::unique_ptr<MCInstPrinter> InstPrint, std::unique_ptr<MCCodeEmitter> CE, std::unique_ptr<MCAsmBackend> TAB)Create a machine code streamer which will print out assembly for the native
target, suitable for compiling with a native assembler.
Parameters
InstPrint - If given, the instruction printer to use. If not given the MCInst representation will be printed. This method takes ownership of InstPrint.CE - If given, a code emitter to use to show the instruction encoding inline with the assembly. This method takes ownership ofTAB - If given, a target asm backend to use to show the fixup information in conjunction with encoding information. This method takes ownership ofShowInst - Whether to show the MCInst representation inline with the assembly.Defined at line 2667 of file llvm/lib/MC/MCAsmStreamer.cpp
-
bool formLCSSAForInstructions (SmallVectorImpl<Instruction *> & Worklist, const DominatorTree & DT, const LoopInfo & LI, ScalarEvolution * SE, SmallVectorImpl<PHINode *> * PHIsToRemove, SmallVectorImpl<PHINode *> * InsertedPHIs)Ensures LCSSA form for every instruction from the Worklist in the scope of
innermost containing loop.
For the given instruction which have uses outside of the loop, an LCSSA PHI
node is inserted and the uses outside the loop are rewritten to use this
node.
LoopInfo and DominatorTree are required and, since the routine makes no
changes to CFG, preserved.
Returns true if any modifications are made.
This function may introduce unused PHI nodes. If
is not
nullptr, those are added to it (before removing, the caller has to check if
they still do not have any uses). Otherwise the PHIs are directly removed.
If
is not nullptr, inserted phis will be added to this
vector.
Defined at line 308 of file llvm/lib/Transforms/Utils/LCSSA.cpp
-
bool findVCToolChainViaCommandLine (vfs::FileSystem & VFS, optional VCToolsDir, optional VCToolsVersion, optional WinSysRoot, std::string & Path, ToolsetLayout & VSLayout)Check command line arguments to try and find a toolchain.
Defined at line 497 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
void calculateWasmEHInfo (const Function * F, WasmEHFuncInfo & EHInfo)Analyze the IR in the given function to build WasmEHFuncInfo.
Defined at line 386 of file llvm/lib/CodeGen/WasmEHPrepare.cpp
-
void initializeDAHPass (PassRegistry & )Defined at line 112 of file llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
-
FunctionPass * createReassociatePass ()Public interface to the Reassociate pass
Defined at line 2664 of file llvm/lib/Transforms/Scalar/Reassociate.cpp
-
ScheduleDAGSDNodes * createFastDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createFastDAGScheduler - This creates a "fast" scheduler.
Defined at line 798 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
-
Constant * ConstantFoldCompareInstOperands (unsigned int Predicate, Constant * LHS, Constant * RHS, const DataLayout & DL, const TargetLibraryInfo * TLI, const Instruction * I)Attempt to constant fold a compare instruction (icmp/fcmp) with the
specified operands. Returns null or a constant expression of the specified
operands on failure.
Denormal inputs may be flushed based on the denormal handling mode.
Defined at line 1199 of file llvm/lib/Analysis/ConstantFolding.cpp
-
std::pair<Function *, FunctionCallee> getOrCreateSanitizerCtorAndInitFunctions (Module & M, StringRef CtorName, StringRef InitName, ArrayRef InitArgTypes, ArrayRef<Value *> InitArgs, function_ref<void (Function *, FunctionCallee)> FunctionsCreatedCallback, StringRef VersionCheckName, bool Weak)Creates sanitizer constructor function lazily. If a constructor and init
function already exist, this function returns it. Otherwise it calls
The FunctionsCreatedCallback is invoked
in that case, passing the new Ctor and Init function.
Returns
Returns pair of pointers to constructor, and init functions
respectively.
Defined at line 301 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
void initializeDCELegacyPassPass (PassRegistry & )Defined at line 143 of file llvm/lib/Transforms/Scalar/DCE.cpp
-
Value * getFreedOperand (const CallBase * CB, const TargetLibraryInfo * TLI)If this if a call to a free function, return the freed operand.
Defined at line 548 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
raw_ostream & operator<< (raw_ostream & OS, OutputConfig Config)Defined at line 52 of file llvm/lib/Support/VirtualOutputConfig.cpp
-
void DecodeUNPCKLMask (unsigned int NumElts, unsigned int ScalarBits, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for unpcklps/unpcklpd and punpckl*.
Defined at line 234 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
std::unique_ptr<MIRParser> createMIRParserFromFile (StringRef Filename, SMDiagnostic & Error, LLVMContext & Context, function ProcessIRFunction)This function is the main interface to the MIR serialization format parser.
It reads in a MIR file and returns a MIR parser that can parse the embedded
LLVM IR module and initialize the machine functions by parsing the machine
function's state.
Parameters
Filename - The name of the file to parse.Error - Error result info.Context - Context which will be used for the parsed LLVM IR module.ProcessIRFunction - function to run on every IR function or stub loaded from the MIR file.Defined at line 1270 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp
-
bool hasFloatFn (const Module * M, const TargetLibraryInfo * TLI, Type * Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn)Check whether the overloaded floating point function
corresponding to
is available.
Defined at line 1566 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
ParsedModuleAndIndex parseAssemblyFileWithIndex (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback)This function is a main interface to the LLVM Assembly Parser. It parses
an ASCII file that (presumably) contains LLVM Assembly code, including
a module summary. It returns a Module (intermediate representation) and
a ModuleSummaryIndex with the corresponding features. Note that this does
not verify that the generated Module or Index are valid, so you should
run the verifier after parsing the file to check that they are okay.
Parse LLVM Assembly from a file
Parameters
Filename The name of the file to parseErr Error result info.Context Context in which to allocate globals info.Slots The optional slot mapping that will be initialized during parsing.DataLayoutCallback Override datalayout in the llvm assembly.Defined at line 124 of file llvm/lib/AsmParser/Parser.cpp
-
bool checkDebugInfoMetadata (Module & M, iterator_range Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath)Check original debug information after a pass.
Parameters
M The module to collect debug information from.Functions A range of functions to collect debug information from.DebugInfoBeforePass DI metadata before a pass.Banner A prefix string to add to debug/error messages.NameOfWrappedPass A name of a pass to add to debug/error messages.Defined at line 611 of file llvm/lib/Transforms/Utils/Debugify.cpp
-
bool checkDebugInfoMetadata (Module & M, int Functions, DebugInfoPerPass & DebugInfoBeforePass, StringRef Banner, StringRef NameOfWrappedPass, StringRef OrigDIVerifyBugsReportFilePath)Check original debug information after a pass.
Parameters
M The module to collect debug information from.Functions A range of functions to collect debug information from.DebugInfoBeforePass DI metadata before a pass.Banner A prefix string to add to debug/error messages.NameOfWrappedPass A name of a pass to add to debug/error messages.Defined at line of file
-
ModulePass * createStaticDataAnnotatorPass ()createStaticDataAnnotatorPASS - This is a module pass that reads from
StaticDataProfileInfoWrapperPass and annotates the section prefix of
global variables.
Defined at line 94 of file llvm/lib/CodeGen/StaticDataAnnotator.cpp
-
bool verifyFunction (const Function & F, raw_ostream * OS)Check a function for errors, useful for use when debugging a
pass.
If there are no errors, the function returns false. If an error is found,
a message describing the error is written to OS (if non-null) and true is
returned.
Defined at line 7710 of file llvm/lib/IR/Verifier.cpp
-
void initializeDSELegacyPassPass (PassRegistry & )Defined at line 2734 of file llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
-
FunctionPass * createX86FlagsCopyLoweringPass ()Return a pass that lowers EFLAGS copy pseudo instructions.
Defined at line 123 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
-
Value * simplifyFNegInst (Value * Op, FastMathFlags FMF, const SimplifyQuery & Q)Given operand for an FNeg, fold the result or return null.
Defined at line 5736 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Expected<std::string> getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath)Fetches any debuginfod artifact using the default local cache directory and
server URLs.
Defined at line 163 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
BasicBlock * splitBB (int & Builder, bool CreateBranch, Twine Name)Split a BasicBlock at
insertion point, even if the block is
degenerate (missing the terminator). Its new insert location will stick to
after the instruction before the insertion point (instead of moving with the
instruction the InsertPoint stores internally).
Defined at line 378 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
BasicBlock * splitBB (IRBuilder<> & Builder, bool CreateBranch, Twine Name)Split a BasicBlock at
insertion point, even if the block is
degenerate (missing the terminator). Its new insert location will stick to
after the instruction before the insertion point (instead of moving with the
instruction the InsertPoint stores internally).
Defined at line of file
-
void updateLoopMetadataDebugLocations (Instruction & I, function_ref<Metadata *(Metadata *)> Updater)Update the debug locations contained within the MD_loop metadata attached
to the instruction
if one exists.
is applied to Metadata
operand in the MD_loop metadata: the returned value is included in the
updated loop metadata node if it is non-null.
Defined at line 448 of file llvm/lib/IR/DebugInfo.cpp
-
void computeValueLLTs (const DataLayout & DL, Type & Ty, SmallVectorImpl<LLT> & ValueTys, SmallVectorImpl<uint64_t> * Offsets, uint64_t StartingOffset)computeValueLLTs - Given an LLVM IR type, compute a sequence of
LLTs that represent all the individual underlying
non-aggregate types that comprise it.
If Offsets is non-null, it points to a vector to be filled in
with the in-memory offsets of each of the individual values.
Defined at line 149 of file llvm/lib/CodeGen/Analysis.cpp
-
Error writeMemProf (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion MemProfVersionRequested, bool MemProfFullSchema, int DataAccessProfileData, int MemProfSum)Write the MemProf data to OS.
Defined at line of file
-
Error writeMemProf (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion MemProfVersionRequested, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)Write out the MemProf data in a requested version.
Defined at line 313 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
ImmutablePass * createScopedNoAliasAAWrapperPass ()===--------------------------------------------------------------------===//
createScopedNoAliasAAWrapperPass - This pass implements metadata-based
scoped noalias analysis.
Defined at line 169 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp
-
void replaceRelativePointerUsersWithZero (Constant * C)Finds the same "relative pointer" pattern as described above, where the
target is `C`, and replaces the entire pattern with a constant zero.
Defined at line 258 of file llvm/lib/Analysis/TypeMetadataUtils.cpp
-
void initializeDXILMetadataAnalysisWrapperPassPass (PassRegistry & )Defined at line 158 of file llvm/lib/Analysis/DXILMetadataAnalysis.cpp
-
const char * to_string (ThinOrFullLTOPhase Phase)Defined at line 301 of file llvm/lib/IR/Pass.cpp
-
void fillMapFromAssume (AssumeInst & Assume, RetainedKnowledgeMap & Result)Insert into the map all the informations contained in the operand bundles of
the llvm.assume. This should be used instead of hasAttributeInAssume when
many queries are going to be made on the same llvm.assume.
String attributes are not inserted in the map.
If the IR changes the map will be outdated.
Defined at line 70 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
void fillMapFromAssume (AssumeInst & Assume, int & Result)Insert into the map all the informations contained in the operand bundles of
the llvm.assume. This should be used instead of hasAttributeInAssume when
many queries are going to be made on the same llvm.assume.
String attributes are not inserted in the map.
If the IR changes the map will be outdated.
Defined at line of file
-
void computeKnownBits (const Value * V, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)Defined at line 141 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool wouldInstructionBeTriviallyDeadOnUnusedPaths (Instruction * I, const TargetLibraryInfo * TLI)Return true if the result produced by the instruction has no side effects on
any paths other than where it is used. This is less conservative than
wouldInstructionBeTriviallyDead which is based on the assumption
that the use count will be 0. An example usage of this API is for
identifying instructions that can be sunk down to use(s).
Defined at line 409 of file llvm/lib/Transforms/Utils/Local.cpp
-
void initializeDXILMetadataAnalysisWrapperPrinterPass (PassRegistry & )Defined at line of file
-
FunctionPass * createInstructionCombiningPass ()===----------------------------------------------------------------------===//
InstructionCombining - Combine instructions to form fewer, simple
instructions. This pass does not modify the CFG, and has a tendency to make
instructions dead, so a subsequent DCE pass is useful.
This pass combines things like:
%Y = add int 1, %X
%Z = add int 1, %Y
into:
%Z = add int 2, %X
Defined at line 6173 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
-
FunctionPass * createRegToMemWrapperPass ()===----------------------------------------------------------------------===//
RegToMemWrapperPass - This pass is used to demote registers to memory
references. In basically undoes the PromoteMemoryToRegister pass to make cfg
hacking easier.
Defined at line 146 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp
-
Constant * getPredForFCmpCode (unsigned int Code, Type * OpTy, CmpInst::Predicate & Pred)This is the complement of getFCmpCode. It turns a predicate code into
either a constant true or false or the predicate for a new FCmp.
Non-NULL return value will be a true or false constant.
NULL return means a new ICmp is needed. The predicate is output in Pred.
Defined at line 64 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
Constant * UpgradeBitCastExpr (unsigned int Opc, Constant * C, Type * DestTy)This is an auto-upgrade for bitcast constant expression between pointers
with different address spaces: the instruction is replaced by a pair
ptrtoint+inttoptr.
Defined at line 5616 of file llvm/lib/IR/AutoUpgrade.cpp
-
void emitSourceFileHeader (StringRef Desc, raw_ostream & OS, const RecordKeeper & Record)emitSourceFileHeader - Output an LLVM style file header to the specified
raw_ostream.
Defined at line 93 of file llvm/lib/TableGen/TableGenBackend.cpp
-
CaptureComponents PointerMayBeCapturedBefore (const Value * V, bool ReturnCaptures, const Instruction * I, const DominatorTree * DT, bool IncludeI, CaptureComponents Mask, function_ref StopFn, const LoopInfo * LI, unsigned int MaxUsesToExplore)Return which components of the pointer may be captured on the path to
Only consider components that are part of
Once
on the accumulated components returns true, the traversal is aborted
early. By default, this happens when *any* of the components in
are captured.
This function only considers captures of the passed value via its def-use
chain, without considering captures of values it may be based on, or
implicit captures such as for external globals.
Defined at line 220 of file llvm/lib/Analysis/CaptureTracking.cpp
-
bool isReadOnlyLoop (Loop * L, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, SmallVectorImpl<LoadInst *> & NonDereferenceableAndAlignedLoads, SmallVectorImpl<const SCEVPredicate *> * Predicates)Returns true if the loop contains read-only memory accesses and doesn't
throw. Puts loads that may fault into
Defined at line 875 of file llvm/lib/Analysis/Loads.cpp
-
void initializeDXILResourceBindingWrapperPassPass (PassRegistry & )Defined at line 1202 of file llvm/lib/Analysis/DXILResource.cpp
-
bool operator== (const DbgValueLocEntry & , const DbgValueLocEntry & )Compare two DbgValueLocEntries for equality.
Defined at line 254 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
-
void DecodeVectorBroadcast (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Decodes a broadcast of the first element of a vector.
Defined at line 250 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
const X86InstrFMA3Group * getFMA3Group (unsigned int Opcode, uint64_t TSFlags)Returns a reference to a group of FMA3 opcodes to where the given
is included. If the given
is not recognized as FMA3
and not included into any FMA3 group, then nullptr is returned.
Defined at line 155 of file llvm/lib/Target/X86/X86InstrFMA3Info.cpp
-
AntiDepBreaker * createAggressiveAntiDepBreaker (MachineFunction & MFi, const RegisterClassInfo & RCI, TargetSubtargetInfo::RegClassVector & CriticalPathRCs)Defined at line 967 of file llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp
-
MCStreamer * createELFStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)Defined at line of file
-
MCStreamer * createELFStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Defined at line 584 of file llvm/lib/MC/MCELFStreamer.cpp
-
void initializeDXILResourceTypeWrapperPassPass (PassRegistry & )Defined at line 1131 of file llvm/lib/Analysis/DXILResource.cpp
-
CGPassBuilderOption getCGPassBuilderOption ()Defined at line 493 of file llvm/lib/CodeGen/TargetPassConfig.cpp
-
Constant * ConstantFoldUnaryOpOperand (unsigned int Opcode, Constant * Op, const DataLayout & DL)Attempt to constant fold a unary operation with the specified operand.
Returns null on failure.
Defined at line 1313 of file llvm/lib/Analysis/ConstantFolding.cpp
-
ScheduleDAGSDNodes * createVLIWDAGScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createVLIWDAGScheduler - Scheduler for VLIW targets. This creates top down
DFA driven list scheduler with clustering heuristic to control
register pressure.
Defined at line 264 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp
-
bool extractBranchWeights (const MDNode * ProfileData, SmallVectorImpl<uint32_t> & Weights)Extract branch weights from MD_prof metadata
Parameters
ProfileData A pointer to an MDNode.Weights [out] An output vector to fill with branch weightsDefined at line 199 of file llvm/lib/IR/ProfDataUtils.cpp
-
MachineFunctionPass * createMachineFunctionPrinterPass (raw_ostream & OS, const std::string & Banner)MachineFunctionPrinter pass - This pass prints out the machine function to
the given stream as a debugging tool.
Defined at line 66 of file llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
-
BasicBlock * splitBBWithSuffix (IRBuilderBase & Builder, bool CreateBranch, Twine Suffix)Like splitBB, but reuses the current block's name for the new name.
Defined at line 392 of file llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
-
bool DeleteDeadPHIs (BasicBlock * BB, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU)Examine each PHI in the given block and delete it if it is dead. Also
recursively delete any operands that become dead as a result. This includes
tracing the def-use list from the PHI to see if it is ultimately unused or
if it reaches an unused cycle. Return true if any PHIs were deleted.
Defined at line 213 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool shouldOptimizeForSize (const Function * F, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI, PGSOQueryType QueryType)Returns true if function
is suggested to be size-optimized based on the
profile.
Defined at line 99 of file llvm/lib/Transforms/Utils/SizeOpts.cpp
-
Value * simplifyFAddInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for an FAdd, fold the result or return null.
Defined at line 6022 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool UnrollRuntimeLoopRemainder (Loop * L, unsigned int Count, bool AllowExpensiveTripCount, bool UseEpilogRemainder, bool UnrollRemainder, bool ForgetAllSCEV, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, bool PreserveLCSSA, unsigned int SCEVExpansionBudget, bool RuntimeUnrollMultiExit, Loop ** ResultLoop, optional OriginalTripCount, BranchProbability OriginalLoopProb)Insert code in the prolog/epilog code when unrolling a loop with a
run-time trip-count.
This method assumes that the loop unroll factor is total number
of loop bodies in the loop after unrolling. (Some folks refer
to the unroll factor as the number of *extra* copies added).
We assume also that the loop unroll factor is a power-of-two. So, after
unrolling the loop, the number of loop bodies executed is 2,
4, 8, etc. Note - LLVM converts the if-then-sequence to a switch
instruction in SimplifyCFG.cpp. Then, the backend decides how code for
the switch instruction is generated.
***Prolog case***
extraiters = tripcount % loopfactor
if (extraiters == 0) jump Loop:
else jump Prol:
Prol: LoopBody;
extraiters -= 1 // Omitted if unroll factor is 2.
if (extraiters != 0) jump Prol: // Omitted if unroll factor is 2.
if (tripcount
<
loopfactor) jump End:
Loop:
...
End:
***Epilog case***
extraiters = tripcount % loopfactor
if (tripcount
<
loopfactor) jump LoopExit:
unroll_iters = tripcount - extraiters
Loop: LoopBody; (executes unroll_iter times);
unroll_iter -= 1
if (unroll_iter != 0) jump Loop:
LoopExit:
if (extraiters == 0) jump EpilExit:
Epil: LoopBody; (executes extraiters times)
extraiters -= 1 // Omitted if unroll factor is 2.
if (extraiters != 0) jump Epil: // Omitted if unroll factor is 2.
EpilExit:
Defined at line 654 of file llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
-
unsigned int getDebugMetadataVersionFromModule (const Module & M)Return Debug Info Metadata Version by checking module flags.
Defined at line 938 of file llvm/lib/IR/DebugInfo.cpp
-
void initializeDXILResourceWrapperPassPass (PassRegistry & )Defined at line 1172 of file llvm/lib/Analysis/DXILResource.cpp
-
void reportFatalUsageError (const char * reason)Report a fatal error that does not indicate a bug in LLVM.
This can be used in contexts where a proper error reporting mechanism
(such as Error/Expected or DiagnosticInfo) is currently not supported, and
would be too involved to introduce at the moment.
Examples where this function should be used instead of
reportFatalInternalError() include invalid inputs or options, but also
environment error conditions outside LLVM's control. It should also be used
for known unsupported/unimplemented functionality.
This will call installed error handlers (or print the message by default)
and then exit with code 1. It will not produce a crash trace and will
*not* ask users to report an LLVM bug.
Defined at line 149 of file llvm/lib/Support/ErrorHandling.cpp
-
SmallVector<VPRegisterUsage, 8> calculateRegisterUsageForPlan (VPlan & Plan, ArrayRef<ElementCount> VFs, const TargetTransformInfo & TTI, const SmallPtrSetImpl<const Value *> & ValuesToIgnore)Estimate the register usage for
and vectorization factors in
by calculating the highest number of values that are live at a single
location as a rough estimate. Returns the register usage for each VF in
Defined at line 409 of file llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
-
FunctionPass * createCFGSimplificationPass (SimplifyCFGOptions Options, function Ftor)Public interface to the CFGSimplification pass
Defined at line 439 of file llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
-
StringRef getFloatFn (const Module * M, const TargetLibraryInfo * TLI, Type * Ty, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, LibFunc & TheLibFunc)Get the name of the overloaded floating point function
corresponding to
Return the LibFunc in
Defined at line 1580 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool findVCToolChainViaEnvironment (vfs::FileSystem & VFS, std::string & Path, ToolsetLayout & VSLayout)Check various environment variables to try and find a toolchain.
Defined at line 524 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
bool isPotentiallyReachableFromMany (SmallVectorImpl<BasicBlock *> & Worklist, const BasicBlock * StopBB, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)Determine whether there is at least one path from a block in
'Worklist' to 'StopBB' without passing through any blocks in
'ExclusionSet', returning true if uncertain.
Determine whether there is a path from at least one block in Worklist to
StopBB within a single function without passing through any of the blocks
in 'ExclusionSet'. Returns false only if we can prove that once any block
in 'Worklist' has been reached then 'StopBB' can not be executed.
Conservatively returns true.
Defined at line 240 of file llvm/lib/Analysis/CFG.cpp
-
GlobalValue * ExtractTypeInfo (Value * V)ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
Defined at line 185 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeDeadMachineInstructionElimPass (PassRegistry & )Defined at line 78 of file llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
-
void reportFatalUsageError (StringRef reason)Defined at line 152 of file llvm/lib/Support/ErrorHandling.cpp
-
Expected<InfoSectionUnitHeader> parseInfoSectionUnitHeader (StringRef Info)Parse and return the header of an info section compile/type unit.
Defined at line 356 of file llvm/lib/DWP/DWP.cpp
-
void DecodeSubVectorBroadcast (unsigned int DstNumElts, unsigned int SrcNumElts, SmallVectorImpl<int> & ShuffleMask)Decodes a broadcast of a subvector to a larger vector type.
Defined at line 255 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Expected<std::string> getCachedOrDownloadArtifact (StringRef UniqueKey, StringRef UrlPath, StringRef CacheDirectoryPath, ArrayRef DebuginfodUrls, duration Timeout)Fetches any debuginfod artifact using the specified local cache directory,
server URLs, and request timeout (in milliseconds). If the artifact is
found, uses the UniqueKey for the local cache file.
Defined at line 261 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
Register constrainRegToClass (MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, Register Reg, const TargetRegisterClass & RegClass)Try to constrain Reg to the specified register class. If this fails,
create a new virtual register in the correct class.
Returns
The virtual register constrained to the right register class.
Defined at line 46 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool UpgradeDebugInfo (Module & M)Check the debug info version number, if it is out-dated, drop the debug
info. Return true if module is modified.
Defined at line 5638 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeDebugifyMachineModulePass (PassRegistry & )Defined at line 205 of file llvm/lib/CodeGen/MachineDebugify.cpp
-
void reportFatalUsageError (const Twine & reason)Defined at line 155 of file llvm/lib/Support/ErrorHandling.cpp
-
bool nameUnamedGlobals (Module & M)Rename all the anon globals in the module
Defined at line 64 of file llvm/lib/Transforms/Utils/NameAnonGlobals.cpp
-
void computeKnownBitsFromRangeMetadata (const MDNode & Ranges, KnownBits & Known)Compute known bits from the range metadata.
the set of bits that are known to be zero
the set of bits that are known to be one
Defined at line 579 of file llvm/lib/Analysis/ValueTracking.cpp
-
AntiDepBreaker * createCriticalAntiDepBreaker (MachineFunction & MFi, const RegisterClassInfo & RCI)Defined at line 697 of file llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
-
ParsedModuleAndIndex parseAssemblyFileWithIndexNoUpgradeDebugInfo (StringRef Filename, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback)Only for use in llvm-as for testing; this does not produce a valid module.
Defined at line 133 of file llvm/lib/AsmParser/Parser.cpp
-
MCStreamer * createGOFFStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)Defined at line of file
-
MCStreamer * createGOFFStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Defined at line 63 of file llvm/lib/MC/MCGOFFStreamer.cpp
-
bool RecursivelyDeleteTriviallyDeadInstructions (Value * V, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)If the specified value is a trivially dead instruction, delete it.
If that makes any of its operands trivially dead, delete them too,
recursively. Return true if any instructions were deleted.
Defined at line 533 of file llvm/lib/Transforms/Utils/Local.cpp
-
void initializeDependenceAnalysisWrapperPassPass (PassRegistry & )Defined at line 188 of file llvm/lib/Analysis/DependenceAnalysis.cpp
-
ScheduleDAGSDNodes * createDefaultScheduler (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createDefaultScheduler - This creates an instruction scheduler appropriate
for the target.
Defined at line 300 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
-
FunctionPass * createPostDomTree ()Defined at line 90 of file llvm/lib/Analysis/PostDominators.cpp
-
void initializeDetectDeadLanesLegacyPass (PassRegistry & )Defined at line 421 of file llvm/lib/CodeGen/DetectDeadLanes.cpp
-
DWARFSectionKind deserializeSectionKind (uint32_t Value, unsigned int IndexVersion)Convert a value read from an index section to the internal representation.
The conversion depends on the index section version, which is expected
to be either 2 for pre-standard GNU proposal or 5 for DWARFv5 package file.
Defined at line 68 of file llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp
-
void extractFromBranchWeightMD32 (const MDNode * ProfileData, SmallVectorImpl<uint32_t> & Weights)Faster version of extractBranchWeights() that skips checks and must only
be called with "branch_weights" metadata nodes. Supports uint32_t.
Defined at line 189 of file llvm/lib/IR/ProfDataUtils.cpp
-
Constant * ConstantFoldBinaryOpOperands (unsigned int Opcode, Constant * LHS, Constant * RHS, const DataLayout & DL)Attempt to constant fold a binary operation with the specified operands.
Returns null or a constant expression of the specified operands on failure.
Defined at line 1320 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void writeStringsAndOffsets (MCStreamer & Out, DWPStringPool & Strings, MCSection * StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version)Defined at line of file
-
void initializeDomOnlyPrinterWrapperPassPass (PassRegistry & )Defined at line 176 of file llvm/lib/Analysis/DomPrinter.cpp
-
void appendToUsed (Module & M, ArrayRef<GlobalValue *> Values)Adds global values to the llvm.used list.
Defined at line 158 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
FunctionPass * createX86DynAllocaExpanderLegacyPass ()Defined at line 86 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp
-
ImmutablePass * createImmutableModuleSummaryIndexWrapperPass (const ModuleSummaryIndex * Index)===--------------------------------------------------------------------===//
ImmutableModuleSummaryIndexWrapperPass - This pass wrap provided
ModuleSummaryIndex object for the module, to be used by other passes.
Defined at line 1239 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
MachineFunctionPass * createMIR2VecVocabPrinterLegacyPass (raw_ostream & OS)MIR2VecVocabPrinter pass - This pass prints out the MIR2Vec vocabulary
contents to the given stream as a debugging tool.
Defined at line 619 of file llvm/lib/CodeGen/MIR2Vec.cpp
-
void initializeDomOnlyViewerWrapperPassPass (PassRegistry & )Defined at line 109 of file llvm/lib/Analysis/DomPrinter.cpp
-
bool tryPromoteCall (CallBase & CB)Try to promote (devirtualize) a virtual call on an Alloca. Return true on
success.
Look for a pattern like:
%o = alloca %class.Impl
%1 = getelementptr %class.Impl, %class.Impl* %o, i64 0, i32 0, i32 0
store i32 (...)** bitcast (i8** getelementptr inbounds
({ [3 x i8*] }, { [3 x i8*] }*
@
_ZTV4Impl, i64 0, inrange i32 0, i64 2)
to i32 (...)**), i32 (...)*** %1
%2 = getelementptr inbounds %class.Impl, %class.Impl* %o, i64 0, i32 0
%3 = bitcast %class.Interface* %2 to void (%class.Interface*)***
%vtable.i = load void (%class.Interface*)**, void (%class.Interface*)*** %3
%4 = load void (%class.Interface*)*, void (%class.Interface*)** %vtable.i
call void %4(%class.Interface* nonnull %2)
@
_ZTV4Impl = linkonce_odr dso_local unnamed_addr constant { [3 x i8*] }
{ [3 x i8*]
[i8* null, i8* bitcast ({ i8*, i8*, i8* }*
@
_ZTI4Impl to i8*),
i8* bitcast (void (%class.Impl*)*
@
_ZN4Impl3RunEv to i8*)] }
Defined at line 685 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
void DecodePSHUFBMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a PSHUFB mask from a raw array of constants such as from
BUILD_VECTOR.
Defined at line 293 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void computeKnownBitsFromContext (const Value * V, KnownBits & Known, const SimplifyQuery & Q, unsigned int Depth)Merge bits known from context-dependent facts into Known.
Defined at line 1036 of file llvm/lib/Analysis/ValueTracking.cpp
-
std::unique_ptr<MIRParser> createMIRParser (std::unique_ptr<MemoryBuffer> Contents, LLVMContext & Context, function ProcessIRFunction)This function is another interface to the MIR serialization format parser.
It returns a MIR parser that works with the given memory buffer and that can
parse the embedded LLVM IR module and initialize the machine functions by
parsing the machine function's state.
Parameters
Contents - The MemoryBuffer containing the machine level IR.Context - Context which will be used for the parsed LLVM IR module.Defined at line of file
-
int createMIRParser (int Contents, LLVMContext & Context, std::function<void (Function &)> ProcessIRFunction)This function is another interface to the MIR serialization format parser.
It returns a MIR parser that works with the given memory buffer and that can
parse the embedded LLVM IR module and initialize the machine functions by
parsing the machine function's state.
Parameters
Contents - The MemoryBuffer containing the machine level IR.Context - Context which will be used for the parsed LLVM IR module.Defined at line 1283 of file llvm/lib/CodeGen/MIRParser/MIRParser.cpp
-
bool shouldOptimizeForSize (const BasicBlock * BB, ProfileSummaryInfo * PSI, BlockFrequencyInfo * BFI, PGSOQueryType QueryType)Returns true if basic block
is suggested to be size-optimized based on
the profile.
Defined at line 107 of file llvm/lib/Transforms/Utils/SizeOpts.cpp
-
Value * simplifyFSubInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for an FSub, fold the result or return null.
Defined at line 6030 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
MCStreamer * createMachOStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE, bool DWARFMustBeAtTheEnd, bool LabelSections)Defined at line 495 of file llvm/lib/MC/MCMachOStreamer.cpp
-
MCStreamer * createMachOStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE, bool DWARFMustBeAtTheEnd, bool LabelSections)Defined at line of file
-
CondCode getFCmpCondCode (Predicate Pred)getFCmpCondCode - Return the ISD condition code corresponding to
the given LLVM IR floating-point condition code. This includes
consideration of global floating-point math flags.
Defined at line 207 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeDomPrinterWrapperPassPass (PassRegistry & )Defined at line 172 of file llvm/lib/Analysis/DomPrinter.cpp
-
Pass * createLoopSimplifyPass ()===----------------------------------------------------------------------===//
LoopSimplify - Insert Pre-header blocks into the CFG for every function in
the module. This pass updates dominator information, loop information, and
does not add critical edges to the CFG.
AU.addRequiredID(LoopSimplifyID);
Defined at line 785 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp
-
bool verifyModule (const Module & M, raw_ostream * OS, bool * BrokenDebugInfo)Check a module for errors.
If there are no errors, the function returns false. If an error is
found, a message describing the error is written to OS (if
non-null) and true is returned.
Returns
true if the module is broken. If BrokenDebugInfo is
supplied, DebugInfo verification failures won't be considered as
error and instead *BrokenDebugInfo will be set to true. Debug
info errors can be "recovered" from by stripping the debug info.
Defined at line 7721 of file llvm/lib/IR/Verifier.cpp
-
Value * emitStrLen (Value * Ptr, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the strlen function to the builder, for the specified
pointer. Ptr is required to be some pointer type, and the return value has
'size_t' type.
Defined at line 1632 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void initializeDomViewerWrapperPassPass (PassRegistry & )Defined at line 105 of file llvm/lib/Analysis/DomPrinter.cpp
-
void appendToCompilerUsed (Module & M, ArrayRef<GlobalValue *> Values)Adds global values to the llvm.compiler.used list.
Defined at line 162 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
FunctionPass * createX86TileConfigPass ()Return a pass that config the tile registers.
Defined at line 206 of file llvm/lib/Target/X86/X86TileConfig.cpp
-
ScheduleDAGSDNodes * createDAGLinearizer (SelectionDAGISel * IS, CodeGenOptLevel OptLevel)createDAGLinearizer - This creates a "no-scheduling" scheduler which
linearize the DAG using topological order.
Defined at line 803 of file llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
-
MCCodeEmitter * createX86MCCodeEmitter (const MCInstrInfo & MCII, MCContext & Ctx)Defined at line 2027 of file llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
-
FunctionPass * createFlattenCFGPass ()Public interface to the FlattenCFG pass
Defined at line 81 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp
-
void extractFromBranchWeightMD64 (const MDNode * ProfileData, SmallVectorImpl<uint64_t> & Weights)Faster version of extractBranchWeights() that skips checks and must only
be called with "branch_weights" metadata nodes. Supports uint64_t.
Defined at line 194 of file llvm/lib/IR/ProfDataUtils.cpp
-
LoopUnrollResult UnrollAndJamLoop (Loop * L, unsigned int Count, unsigned int TripCount, unsigned int TripMultiple, bool UnrollRemainder, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, OptimizationRemarkEmitter * ORE, Loop ** EpilogueLoop)This method performs Unroll and Jam. For a simple loop like:
for (i = ..)
Fore(i)
for (j = ..)
SubLoop(i, j)
Aft(i)
Instead of doing normal inner or outer unrolling, we do:
for (i = .., i+=2)
Fore(i)
Fore(i+1)
for (j = ..)
SubLoop(i, j)
SubLoop(i+1, j)
Aft(i)
Aft(i+1)
So the outer loop is essetially unrolled and then the inner loops are fused
("jammed") together into a single loop. This can increase speed when there
are loads in SubLoop that are invariant to i, as they become shared between
the now jammed inner loops.
We do this by spliting the blocks in the loop into Fore, Subloop and Aft.
Fore blocks are those before the inner loop, Aft are those after. Normal
Unroll code is used to copy each of these sets of blocks and the results are
combined together into the final form above.
isSafeToUnrollAndJam should be used prior to calling this to make sure the
unrolling will be valid. Checking profitablility is also advisable.
If EpilogueLoop is non-null, it receives the epilogue loop (if it was
necessary to create one and not fully unrolled).
Defined at line 213 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
-
bool isRemovableAlloc (const CallBase * V, const TargetLibraryInfo * TLI)Return true if this is a call to an allocation function that does not have
side effects that we are required to preserve beyond the effect of
allocating a new object.
Ex: If our allocation routine has a counter for the number of objects
allocated, and the program prints it on exit, can the value change due
to optimization? Answer is highly language dependent.
Note: *Removable* really does mean removable; it does not mean observable.
A language (e.g. C++) can allow removing allocations without allowing
insertion or speculative execution of allocation routines.
Defined at line 330 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
bool mayHaveMemprofSummary (const CallBase * CB)Returns true if the instruction could have memprof metadata, used to ensure
consistency between summary analysis and the ThinLTO backend processing.
Defined at line 1247 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
MachineFunctionPass * createMIR2VecPrinterLegacyPass (raw_ostream & OS)Create a machine pass that prints MIR2Vec embeddings
Defined at line 673 of file llvm/lib/CodeGen/MIR2Vec.cpp
-
FunctionPass * createVerifierPass (bool FatalErrors)Defined at line 8137 of file llvm/lib/IR/Verifier.cpp
-
void initializeDominatorTreeWrapperPassPass (PassRegistry & )Defined at line 426 of file llvm/lib/IR/Dominators.cpp
-
raw_ostream & dbgs ()dbgs - Return a circular-buffered debug stream.
Defined at line 207 of file llvm/lib/Support/Debug.cpp
-
const void * SavePrettyStackState ()Returns the topmost element of the "pretty" stack state.
Defined at line 321 of file llvm/lib/Support/PrettyStackTrace.cpp
-
void setProfMetadata (Instruction * TI, ArrayRef EdgeCounts, uint64_t MaxCount)Defined at line 2408 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
-
bool operator< (const struct FrameIndexExpr & LHS, const struct FrameIndexExpr & RHS)Operator enabling sorting based on fragment offset.
Defined at line 277 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
-
void DecodeBLENDMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decode a BLEND immediate mask into a shuffle mask.
Defined at line 315 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Error buildDuplicateError (const std::pair<uint64_t, UnitIndexEntry> & PrevE, const CompileUnitIdentifiers & ID, StringRef DWPName)Defined at line 599 of file llvm/lib/DWP/DWP.cpp
-
bool findVCToolChainViaSetupConfig (vfs::FileSystem & VFS, optional VCToolsVersion, std::string & Path, ToolsetLayout & VSLayout)Query the Setup Config server for installs, then pick the newest version
and find its default VC toolchain. If `VCToolsVersion` is specified, that
version is preferred over the latest version.
This is the preferred way to discover new Visual Studios, as they're no
longer listed in the registry.
Defined at line 634 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
CondCode getFCmpCodeWithoutNaN (CondCode CC)getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats,
return the equivalent code if we're allowed to assume that NaNs won't occur.
Defined at line 229 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeDwarfEHPrepareLegacyPassPass (PassRegistry & )Defined at line 404 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp
-
FunctionPass * createX86FastPreTileConfigPass ()Return a pass that preconfig the tile registers before fast reg allocation.
Defined at line 711 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp
-
Printable printBlockFreq (const MachineBlockFrequencyInfo & MBFI, BlockFrequency Freq)Print the block frequency
relative to the current functions entry
frequency. Returns a Printable object that can be piped via `
<
<
` to a
`raw_ostream`.
Defined at line 315 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
-
bool formLCSSA (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE)Put loop into LCSSA form.
Looks at all instructions in the loop which have uses outside of the
current loop. For each, an LCSSA PHI node is inserted and the uses outside
the loop are rewritten to use this node. Sub-loops must be in LCSSA form
already.
LoopInfo and DominatorTree are required and preserved.
If ScalarEvolution is passed in, it will be preserved.
Returns true if any modifications are made to the loop.
Defined at line 427 of file llvm/lib/Transforms/Utils/LCSSA.cpp
-
basic_string getInstrProfSectionName (InstrProfSectKind IPSK, ObjectFormatType OF, bool AddSegmentInfo)Return the name of the profile section corresponding to
The name of the section depends on the object format type
If
is true, a segment prefix and additional linker hints may
be added to the section name (this is the default).
Defined at line 238 of file llvm/lib/ProfileData/InstrProf.cpp
-
Constant * ConstantFoldFPInstOperands (unsigned int Opcode, Constant * LHS, Constant * RHS, const DataLayout & DL, const Instruction * I, bool AllowNonDeterministic)Attempt to constant fold a floating point binary operation with the
specified operands, applying the denormal handling mod to the operands.
Returns null or a constant expression of the specified operands on failure.
Defined at line 1442 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool isSafeToLoadUnconditionally (Value * V, Type * Ty, Align Alignment, const DataLayout & DL, Instruction * ScanFrom, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI)Return true if we know that executing a load from this value cannot trap.
If DT and ScanFrom are specified this method performs context-sensitive
analysis and returns true if it is safe to load immediately before ScanFrom.
If it is not obviously safe to load from the specified pointer, we do a
quick local scan of the basic block containing ScanFrom, to determine if
the address is already accessed.
Defined at line 516 of file llvm/lib/Analysis/Loads.cpp
-
MCAsmBackend * createX86_32AsmBackend (const Target & T, const MCSubtargetInfo & STI, const MCRegisterInfo & MRI, const MCTargetOptions & Options)Defined at line 1468 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
-
bool isManyPotentiallyReachableFromMany (SmallVectorImpl<BasicBlock *> & Worklist, const SmallPtrSetImpl<const BasicBlock *> & StopSet, const SmallPtrSetImpl<BasicBlock *> * ExclusionSet, const DominatorTree * DT, const LoopInfo * LI)Determine whether there is a potentially a path from at least one block in
'Worklist' to at least one block in 'StopSet' within a single function
without passing through any of the blocks in 'ExclusionSet'. Returns false
only if we can prove that once any block in 'Worklist' has been reached then
no blocks in 'StopSet' can be executed without passing through any blocks in
'ExclusionSet'. Conservatively returns true.
Defined at line 249 of file llvm/lib/Analysis/CFG.cpp
-
KnownBits analyzeKnownBitsFromAndXorOr (const Operator * I, const KnownBits & KnownLHS, const KnownBits & KnownRHS, const SimplifyQuery & SQ, unsigned int Depth)Public so this can be used in `SimplifyDemandedUseBits`.
Defined at line 1266 of file llvm/lib/Analysis/ValueTracking.cpp
-
void copyModuleAttrToFunctions (Module & M)Copies module attributes to the functions in the module.
Currently only effects ARM, Thumb and AArch64 targets.
Supported attributes:
- branch-target-enforcement
- branch-protection-pauth-lr
- guarded-control-stack
- sign-return-address
- sign-return-address-with-bkey
Defined at line 6252 of file llvm/lib/IR/AutoUpgrade.cpp
-
int getNextAvailablePluginDiagnosticKind ()Get the next available kind ID for a plugin diagnostic.
Each time this function is called, it returns a different number.
Therefore, a plugin that wants to "identify" its own classes
with a dynamic identifier, just have to use this method to get a new ID
and assign it to each of its classes.
The returned ID will be greater than or equal to DK_FirstPluginKind.
Thus, the plugin identifiers will not conflict with the
DiagnosticKind values.
Defined at line 45 of file llvm/lib/IR/DiagnosticInfo.cpp
-
void initializeEarlyCSELegacyPassPass (PassRegistry & )Defined at line 1926 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp
-
bool operator< (const struct EntryValueInfo & LHS, const struct EntryValueInfo & RHS)Operator enabling sorting based on fragment offset.
Defined at line 282 of file llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
-
MCStreamer * createWasmStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)Defined at line of file
-
MCStreamer * createWasmStreamer (MCContext & Ctx, std::unique_ptr<MCAsmBackend> && TAB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Defined at line 155 of file llvm/lib/MC/MCWasmStreamer.cpp
-
bool MergeBlockIntoPredecessor (BasicBlock * BB, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, MemoryDependenceResults * MemDep, bool PredecessorWithTwoSuccessors, DominatorTree * DT)Attempts to merge a block into its predecessor, if possible. The return
value indicates success or failure.
By default do not merge blocks if BB's predecessor has multiple successors.
If PredecessorWithTwoSuccessors = true, the blocks can only be merged
if BB's Pred has a branch to BB and to AnotherBB, and BB has a single
successor Sing. In this case the branch will be updated with Sing instead of
BB, and BB will still be merged into its predecessor and removed.
If
is not nullptr, update it directly; in that case, DTU must be
nullptr.
Defined at line 227 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void initializeLazyBPIPassPass (PassRegistry & Registry)Helper for client passes to initialize dependent passes for LBPI.
Defined at line 71 of file llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
-
ImmutablePass * createTypeBasedAAWrapperPass ()===--------------------------------------------------------------------===//
createTypeBasedAAWrapperPass - This pass implements metadata-based
type-based alias analysis.
Defined at line 746 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
-
bool canSimplifyInvokeNoUnwind (const Function * F)Defined at line 103 of file llvm/lib/IR/EHPersonalities.cpp
-
void initializeEarlyCSEMemSSALegacyPassPass (PassRegistry & )Defined at line 1949 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp
-
void setIrrLoopHeaderMetadata (Module * M, Instruction * TI, uint64_t Count)Defined at line 2449 of file llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
-
Value * emitWcsLen (Value * Ptr, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the wcslen function to the builder, for the specified
pointer. Ptr is required to be some pointer type, and the return value has
'size_t' type.
Defined at line 1639 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void removeFromUsedLists (Module & M, function_ref ShouldRemove)Removes global values from the llvm.used and llvm.compiler.used arrays.
should return true for any initializer field that should not be
included in the replacement global.
Defined at line 196 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
void DecodeVPERM2X128Mask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Defined at line 281 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
unique_ptr createGOFFObjectWriter (unique_ptr MOTW, raw_pwrite_stream & OS)Construct a new GOFF writer instance.
Parameters
MOTW - The target-specific GOFF writer subclass.OS - The stream to write to.Defined at line 789 of file llvm/lib/MC/GOFFObjectWriter.cpp
-
std::optional<DecomposedBitTest> decomposeBitTestICmp (Value * LHS, Value * RHS, Predicate Pred, bool LookThroughTrunc, bool AllowNonZeroC, bool DecomposeAnd)Decompose an icmp into the form ((X
&
Mask) pred C) if possible.
Unless
is true, C will always be 0. If
is specified, then, for equality predicates, this will
decompose bitmasking via `and`.
Defined at line 76 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
Value * simplifyFMulInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for an FMul, fold the result or return null.
Defined at line 6038 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
template <typename T>std::enable_if_t<is_integral_or_enum<T>::value, hash_code> hash_value (T value)Compute a hash_code for any integer value.
Note that this function is intended to compute the same hash_code for
a particular value without regard to the pre-promotion type. This is in
contrast to hash_combine which may produce different hash_codes for
differing argument types even if they would implicit promote to a common
type without changing the value.
Defined at line 622 of file llvm/include/llvm/ADT/Hashing.h
-
template <typename T>int hash_value (T value)Compute a hash_code for any integer value.
Note that this function is intended to compute the same hash_code for
a particular value without regard to the pre-promotion type. This is in
contrast to hash_combine which may produce different hash_codes for
differing argument types even if they would implicit promote to a common
type without changing the value.
Defined at line 622 of file llvm/include/llvm/ADT/Hashing.h
-
MachineFunctionPass * createStackFrameLayoutAnalysisPass ()Returns a newly-created StackFrameLayout pass.
Defined at line 310 of file llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp
-
void initializeEarlyIfConverterLegacyPass (PassRegistry & )Defined at line 846 of file llvm/lib/CodeGen/EarlyIfConversion.cpp
-
FunctionPass * createX86FastTileConfigPass ()Return a pass that config the tile registers after fast reg allocation.
Defined at line 191 of file llvm/lib/Target/X86/X86FastTileConfig.cpp
-
int parseSummaryIndexAssemblyFile (StringRef Filename, SMDiagnostic & Err)This function is a main interface to the LLVM Assembly Parser. It parses
an ASCII file that (presumably) contains LLVM Assembly code for a module
summary. It returns a ModuleSummaryIndex with the corresponding features.
Note that this does not verify that the generated Index is valid, so you
should run the verifier after parsing the file to check that it is okay.
Parse LLVM Assembly Index from a file
Parameters
Filename The name of the file to parseErr Error result info.Defined at line 176 of file llvm/lib/AsmParser/Parser.cpp
-
std::pair<Instruction *, CaptureComponents> FindEarliestCapture (const Value * V, Function & F, bool ReturnCaptures, const DominatorTree & DT, CaptureComponents Mask, unsigned int MaxUsesToExplore)Returns the 'earliest' instruction that captures
in
, and which
components may be captured (by any use, not necessarily the earliest one).
An instruction A is considered earlier than instruction B, if A dominates
B. If 2 escapes do not dominate each other, the terminator of the common
dominator is chosen. If not all uses can be analyzed, the earliest escape
is set to the first instruction in the function entry block. If
does
not escape, nullptr is returned. Note that the caller of the function has
to ensure that the instruction the result value is compared against is
not in a cycle.
Only consider components that are part of
Defined at line 251 of file llvm/lib/Analysis/CaptureTracking.cpp
-
Register constrainOperandRegClass (const MachineFunction & MF, const TargetRegisterInfo & TRI, MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, MachineInstr & InsertPt, const TargetRegisterClass & RegClass, MachineOperand & RegMO)Constrain the Register operand OpIdx, so that it is now constrained to the
TargetRegisterClass passed as an argument (RegClass).
If this fails, create a new virtual register in the correct class and insert
a COPY before
if it is a use or after if it is a definition.
In both cases, the function also updates the register of RegMo. The debug
location of
is used for the new copy.
Returns
The virtual register constrained to the right register class.
Defined at line 56 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void writeIndex (MCStreamer & Out, MCSection * Section, ArrayRef ContributionOffsets, const MapVector<uint64_t, UnitIndexEntry> & IndexEntries, uint32_t IndexVersion)Defined at line 545 of file llvm/lib/DWP/DWP.cpp
-
CondCode getICmpCondCode (Predicate Pred)getICmpCondCode - Return the ISD condition code corresponding to
the given LLVM IR integer condition code.
Defined at line 241 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeEarlyIfPredicatorPass (PassRegistry & )Defined at line 1228 of file llvm/lib/CodeGen/EarlyIfConversion.cpp
-
TimeTraceProfiler * getTimeTraceProfilerInstance ()Defined at line 57 of file llvm/lib/Support/TimeProfiler.cpp
-
Printable printBlockFreq (const BlockFrequencyInfo & BFI, BlockFrequency Freq)Print the block frequency
relative to the current functions entry
frequency. Returns a Printable object that can be piped via `
<
<
` to a
`raw_ostream`.
Defined at line 283 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp
-
CallBase & versionCallSite (CallBase & CB, Value * Callee, MDNode * BranchWeights)Predicate and clone the given call site using condition `CB.callee ==
Callee`. See the comment `versionCallSiteWithCond` for the transformation.
Defined at line 383 of file llvm/lib/Transforms/Utils/CallPromotionUtils.cpp
-
bool isSafeToUnrollAndJam (Loop * L, ScalarEvolution & SE, DominatorTree & DT, DependenceInfo & DI, LoopInfo & LI)Defined at line 861 of file llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
-
MCAsmBackend * createX86_64AsmBackend (const Target & T, const MCSubtargetInfo & STI, const MCRegisterInfo & MRI, const MCTargetOptions & Options)Defined at line 1487 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
-
void initializeEarlyMachineLICMPass (PassRegistry & )Defined at line 349 of file llvm/lib/CodeGen/MachineLICM.cpp
-
FunctionPass * createUnifyLoopExitsPass ()===----------------------------------------------------------------------===//
UnifyLoopExits - For each loop, creates a new block N such that all exiting
blocks branch to N, and then N distributes control flow to all the original
exit blocks.
Defined at line 64 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp
-
Value * getAllocAlignment (const CallBase * V, const TargetLibraryInfo * TLI)Gets the alignment argument for an aligned_alloc-like function, using either
built-in knowledge based on fuction names/signatures or allocalign
attributes. Note: the Value returned may not indicate a valid alignment, per
the definition of the allocalign attribute.
Defined at line 341 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
Printable printBlockFreq (const MachineBlockFrequencyInfo & MBFI, const MachineBasicBlock & MBB)Convenience function equivalent to calling
`printBlockFreq(MBFI, MBFI.getBlockFreq(
&MBB
))`.
Defined at line 322 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
-
MCStreamer * createSPIRVStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)Defined at line of file
-
void RecursivelyDeleteTriviallyDeadInstructions (SmallVectorImpl<WeakTrackingVH> & DeadInsts, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)Delete all of the instructions in `DeadInsts`, and all other instructions
that deleting these in turn causes to be trivially dead.
The initial instructions in the provided vector must all have empty use
lists and satisfy `isInstructionTriviallyDead`.
`DeadInsts` will be used as scratch storage for this routine and will be
empty afterward.
Defined at line 567 of file llvm/lib/Transforms/Utils/Local.cpp
-
void initializeEarlyTailDuplicateLegacyPass (PassRegistry & )Defined at line 83 of file llvm/lib/CodeGen/TailDuplication.cpp
-
bool isTimeTraceVerbose ()Defined at line 386 of file llvm/lib/Support/TimeProfiler.cpp
-
FunctionPass * createX86PreTileConfigPass ()Return a pass that insert pseudo tile config instruction.
Defined at line 439 of file llvm/lib/Target/X86/X86PreTileConfig.cpp
-
void delinearize (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)Split this SCEVAddRecExpr into two vectors of SCEVs representing the
subscripts and sizes of an array access.
The delinearization is a 3 step process: the first two steps compute the
sizes of each subscript and the third step computes the access functions
for the delinearized array:
1. Find the terms in the step functions
2. Compute the array size
3. Compute the access function: divide the SCEV by the array size
starting with the innermost dimensions found in step 2. The Quotient
is the SCEV to be divided in the next step of the recursion. The
Remainder is the subscript of the innermost dimension. Loop over all
array dimensions computed in step 2.
To compute a uniform array size for several memory accesses to the same
object, one can collect in step 1 all the step terms for all the memory
accesses, and compute in step 2 a unique array shape. This guarantees
that the array shape will be the same across all memory accesses.
FIXME: We could derive the result of steps 1 and 2 from a description of
the array shape given in metadata.
Example:
A[][n][m]
for i
for j
for k
A[j+k][2i][5i] =
The initial SCEV:
A[{{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k]
1. Find the different terms in the step functions:
-> [2*m, 5, n*m, n*m]
2. Compute the array size: sort and unique them
-> [n*m, 2*m, 5]
find the GCD of all the terms = 1
divide by the GCD and erase constant terms
-> [n*m, 2*m]
GCD = m
divide by GCD -> [n, 2]
remove constant terms
-> [n]
size of the array is A[unknown][n][m]
3. Compute the access function
a. Divide {{{0,+,2*m+5}_i, +, n*m}_j, +, n*m}_k by the innermost size m
Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k
Remainder: {{{0,+,5}_i, +, 0}_j, +, 0}_k
The remainder is the subscript of the innermost array dimension: [5i].
b. Divide Quotient: {{{0,+,2}_i, +, n}_j, +, n}_k by next outer size n
Quotient: {{{0,+,0}_i, +, 1}_j, +, 1}_k
Remainder: {{{0,+,2}_i, +, 0}_j, +, 0}_k
The Remainder is the subscript of the next array dimension: [2i].
The subscript of the outermost dimension is the Quotient: [j+k].
Overall, we have: A[][n][m], and the access function: A[j+k][2i][5i].
Defined at line 463 of file llvm/lib/Analysis/Delinearization.cpp
-
MachineFunctionPass * createPrintMIRPass (raw_ostream & OS)MIRPrinting pass - this pass prints out the LLVM IR into the given stream
using the MIR serialization format.
Defined at line 82 of file llvm/lib/CodeGen/MIRPrintingPass.cpp
-
Pass * createStructurizeCFGPass (bool SkipUniformRegions)===----------------------------------------------------------------------===//
CFG Structurization - Remove irreducible control flow
When
is true the structizer will not structurize
regions that only contain uniform branches.
Defined at line 1448 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
-
bool extractBranchWeights (const Instruction & I, SmallVectorImpl<uint32_t> & Weights)Extract branch weights attatched to an Instruction
Parameters
I The Instruction to extract weights from.Weights [out] An output vector to fill with branch weightsDefined at line 207 of file llvm/lib/IR/ProfDataUtils.cpp
-
bool findVCToolChainViaRegistry (std::string & Path, ToolsetLayout & VSLayout)Look in the registry for Visual Studio installs, and use that to get
a toolchain path. VS2017 and newer don't get added to the registry.
So if we find something here, we know that it's an older version.
Defined at line 731 of file llvm/lib/WindowsDriver/MSVCPaths.cpp
-
template <typename T>hash_code hash_value (const T * ptr)Compute a hash_code for a pointer's address.
N.B.: This hashes the *address*. Not the value and not the type.
Defined at line 629 of file llvm/include/llvm/ADT/Hashing.h
-
void initializeDummyCGSCCPassPass (PassRegistry & )Defined at line 729 of file llvm/lib/Analysis/CallGraphSCCPass.cpp
-
Predicate getICmpCondCode (CondCode Pred)getICmpCondCode - Return the LLVM IR integer condition code
corresponding to the given ISD integer condition code.
Defined at line 258 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeEHContGuardTargetsPass (PassRegistry & )Defined at line 55 of file llvm/lib/CodeGen/EHContGuardTargets.cpp
-
void RestorePrettyStackState (const void * State)Restores the topmost element of the "pretty" stack state to State, which
should come from a previous call to SavePrettyStackState(). This is
useful when using a CrashRecoveryContext in code that also uses
PrettyStackTraceEntries, to make sure the stack that's printed if a crash
happens after a crash that's been recovered by CrashRecoveryContext
doesn't have frames on it that were added in code unwound by the
CrashRecoveryContext.
Defined at line 329 of file llvm/lib/Support/PrettyStackTrace.cpp
-
Value * emitStrDup (Value * Ptr, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strdup function to the builder, for the specified
pointer. Ptr is required to be some pointer type, and the return value has
'i8*' type.
Defined at line 1648 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void decodeVSHUF64x2FamilyMask (unsigned int NumElts, unsigned int ScalarSize, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decode a shuffle packed values at 128-bit granularity
(SHUFF32x4/SHUFF64x2/SHUFI32x4/SHUFI64x2)
immediate mask into a shuffle mask.
Defined at line 264 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void adjustKnownBitsForSelectArm (KnownBits & Known, Value * Cond, Value * Arm, bool Invert, const SimplifyQuery & Q, unsigned int Depth)Adjust
for the given select
to include information from the
select
Defined at line 1298 of file llvm/lib/Analysis/ValueTracking.cpp
-
void simplifyLoopAfterUnroll (Loop * L, bool SimplifyIVs, LoopInfo * LI, ScalarEvolution * SE, DominatorTree * DT, AssumptionCache * AC, const TargetTransformInfo * TTI, AAResults * AA)Perform some cleanup and simplifications on loops after unrolling. It is
useful to simplify the IV's in the new loop, as well as do a quick
simplify/dce pass of the instructions.
Defined at line 343 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp
-
MDNode * upgradeInstructionLoopAttachment (MDNode & N)Upgrade the loop attachment metadata node.
Defined at line 6387 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeExpandIRInstsLegacyPassPass (PassRegistry & )Defined at line of file
-
Error createCtxProfFromYAML (StringRef Profile, raw_ostream & Out)Defined at line 258 of file llvm/lib/ProfileData/PGOCtxProfWriter.cpp
-
void applyFlowInference (const ProfiParams & Params, FlowFunction & Func)Apply the profile inference algorithm for a given function and provided
profi options
Defined at line 1321 of file llvm/lib/Transforms/Utils/SampleProfileInference.cpp
-
FunctionPass * createX86LowerTileCopyPass ()Return a pass that lower the tile copy instruction.
Defined at line 68 of file llvm/lib/Target/X86/X86LowerTileCopy.cpp
-
Printable printBlockFreq (const BlockFrequencyInfo & BFI, const BasicBlock & BB)Convenience function equivalent to calling
`printBlockFreq(BFI, BFI.getBlocakFreq(
&BB
))`.
Defined at line 290 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp
-
basic_string tensorValueToString (const char * Buffer, const TensorSpec & Spec)For debugging.
Defined at line 107 of file llvm/lib/Analysis/TensorSpec.cpp
-
void install_bad_alloc_error_handler (fatal_error_handler_t handler, void * user_data)Installs a new bad alloc error handler that should be used whenever a
bad alloc error, e.g. failing malloc/calloc, is encountered by LLVM.
The user can install a bad alloc handler, in order to define the behavior
in case of failing allocations, e.g. throwing an exception. Note that this
handler must not trigger any additional allocations itself.
If no error handler is installed the default is to print the error message
to stderr, and call exit(1). If an error handler is installed then it is
the handler's responsibility to log the message, it will no longer be
printed to stderr. If the error handler returns, then exit(1) will be
called.
Parameters
user_data - An argument which will be passed to the installed error handler.Defined at line 159 of file llvm/lib/Support/ErrorHandling.cpp
-
MCStreamer * createDXContainerStreamer (MCContext & Ctx, int && TAB, int && OW, int && CE)Defined at line of file
-
void renameModuleForThinLTO (Module & M, const ModuleSummaryIndex & Index, bool ClearDSOLocalOnDeclarations, int * GlobalsToImport)Perform in-place global value handling on the given Module for
exported local functions renamed and promoted for ThinLTO.
Defined at line of file
-
void renameModuleForThinLTO (Module & M, const ModuleSummaryIndex & Index, bool ClearDSOLocalOnDeclarations, SetVector<GlobalValue *> * GlobalsToImport)Perform in-place global value handling on the given Module for
exported local functions renamed and promoted for ThinLTO.
Defined at line 376 of file llvm/lib/Transforms/Utils/FunctionImportUtils.cpp
-
bool mustSuppressSpeculation (const LoadInst & LI)Return true if speculation of the given load must be suppressed to avoid
ordering or interfering with an active sanitizer. If not suppressed,
dereferenceability and alignment must be proven separately. Note: This
is only needed for raw reasoning; if you use the interface below
(isSafeToSpeculativelyExecute), this is handled internally.
Defined at line 420 of file llvm/lib/Analysis/Loads.cpp
-
int colorEHFunclets (Function & F)If an EH funclet personality is in use (see isFuncletEHPersonality),
this will recompute which blocks are in which funclet. It is possible that
some blocks are in multiple funclets. Consider this analysis to be
expensive.
Defined at line 115 of file llvm/lib/IR/EHPersonalities.cpp
-
void initializeExpandMemCmpLegacyPassPass (PassRegistry & )Defined at line 1026 of file llvm/lib/CodeGen/ExpandMemCmp.cpp
-
void llvm_shutdown ()llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
Defined at line 75 of file llvm/lib/Support/ManagedStatic.cpp
-
void applyFlowInference (FlowFunction & Func)Apply the profile inference algorithm for a given flow function
Defined at line 1363 of file llvm/lib/Transforms/Utils/SampleProfileInference.cpp
-
MCTargetStreamer * createX86AsmTargetStreamer (MCStreamer & S, formatted_raw_ostream & OS, MCInstPrinter * InstPrinter)Implements X86-only directives for assembly emission.
Defined at line 455 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
-
Expected<FileCache> localCache (const Twine & CacheNameRef, const Twine & TempFilePrefixRef, const Twine & CacheDirectoryPathRef, AddBufferFn AddBuffer)Create a local file system cache which uses the given cache name, temporary
file prefix, cache directory and file callback. This function does not
immediately create the cache directory if it does not yet exist; this is
done lazily the first time a file is added. The cache name appears in error
messages for errors during caching. The temporary file prefix is used in the
temporary file naming scheme used when writing files atomically.
Defined at line of file
-
template <class T>T any_cast (const Any & Value)Defined at line 137 of file llvm/include/llvm/ADT/Any.h
-
void initializeExpandPostRALegacyPass (PassRegistry & )Defined at line 75 of file llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
-
std::optional<DecomposedBitTest> decomposeBitTest (Value * Cond, bool LookThroughTrunc, bool AllowNonZeroC, bool DecomposeAnd)Decompose an icmp into the form ((X
&
Mask) pred C) if
possible. Unless
is true, C will always be 0.
If
is specified, then, for equality predicates, this
will decompose bitmasking via `and`.
Defined at line 187 of file llvm/lib/Analysis/CmpInstAnalysis.cpp
-
template <class T>T any_cast (Any & Value)Defined at line 142 of file llvm/include/llvm/ADT/Any.h
-
template <typename T, typename U>hash_code hash_value (const std::pair<T, U> & arg)Compute a hash_code for a pair of objects.
Defined at line 637 of file llvm/include/llvm/ADT/Hashing.h
-
OptPassGate & getGlobalPassGate ()Singleton instance of the OptPassGate class, so multiple pass managers don't
need to coordinate their uses of OptBisect and OptDisable.
Defined at line 94 of file llvm/lib/IR/OptBisect.cpp
-
void initializeExpandReductionsPass (PassRegistry & )Defined at line 179 of file llvm/lib/CodeGen/ExpandReductions.cpp
-
FunctionPass * createFixIrreduciblePass ()===----------------------------------------------------------------------===//
FixIrreducible - Convert each SCC with irreducible control-flow
into a natural loop.
Defined at line 166 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp
-
bool formLCSSARecursively (Loop & L, const DominatorTree & DT, const LoopInfo * LI, ScalarEvolution * SE)Process a loop nest depth first.
Defined at line 449 of file llvm/lib/Transforms/Utils/LCSSA.cpp
-
void DecodeVPERMMask (unsigned int NumElts, unsigned int Imm, SmallVectorImpl<int> & ShuffleMask)Decodes the shuffle masks for VPERMQ/VPERMPD.
Defined at line 364 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool findFixedSizeArrayDimensions (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<uint64_t> & Sizes, const SCEV * ElementSize)Compute the dimensions of fixed size array from
and save the results
in
Defined at line 532 of file llvm/lib/Analysis/Delinearization.cpp
-
Value * simplifyFMAFMul (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for the multiplication of a FMA, fold the result or return
null. In contrast to simplifyFMulInst, this function will not perform
simplifications whose unrounded results differ when rounded to the argument
type.
Defined at line 6046 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
template <class T>T any_cast (Any && Value)Defined at line 147 of file llvm/include/llvm/ADT/Any.h
-
basic_string UpgradeDataLayoutString (StringRef DL, StringRef Triple)Upgrade the datalayout string by adding a section for address space
pointers.
Defined at line 6403 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeExpandVariadicsPass (PassRegistry & )Defined at line 1007 of file llvm/lib/Transforms/IPO/ExpandVariadics.cpp
-
void remove_bad_alloc_error_handler ()Restores default bad alloc error handling behavior.
Defined at line 170 of file llvm/lib/Support/ErrorHandling.cpp
-
Constant * FlushFPConstant (Constant * Operand, const Instruction * I, bool IsOutput)Attempt to flush float point constant according to denormal mode set in the
instruction's parent function attributes. If so, return a zero with the
correct sign, otherwise return the original constant. Inputs and outputs to
floating point instructions can have their mode set separately, so the
direction is also needed.
If the calling function's "denormal-fp-math" input mode is "dynamic" for the
floating-point type, returns nullptr for denormal inputs.
Defined at line 1374 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void timeTraceProfilerInitialize (unsigned int TimeTraceGranularity, StringRef ProcName, bool TimeTraceVerbose)Initialize the time trace profiler.
This sets up the global
variable to be the profiler instance.
Defined at line 391 of file llvm/lib/Support/TimeProfiler.cpp
-
thread::native_handle_type llvm_execute_on_thread_impl (thread::start_routine_type ThreadFunc, void * Arg, optional StackSizeInBytes)Defined at line 74 of file llvm/lib/Support/Unix/Threading.inc
-
optional getAllocSize (const CallBase * CB, const TargetLibraryInfo * TLI, function_ref Mapper)Return the size of the requested allocation. With a trivial mapper, this is
similar to calling getObjectSize(..., Exact), but without looking through
calls that return their argument. A mapper function can be used to replace
one Value* (operand to the allocation) with another. This is useful when
doing abstract interpretation.
Defined at line 366 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
template <class T>const T * any_cast (const Any * Value)Defined at line 152 of file llvm/include/llvm/ADT/Any.h
-
void initializeExternalAAWrapperPassPass (PassRegistry & )Defined at line 726 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
FunctionPass * createTailCallEliminationPass ()Public interface to the TailCallElimination pass
Defined at line 981 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
-
MDNode * GetUnrollMetadata (MDNode * LoopID, StringRef Name)Given an llvm.loop loop id metadata node, returns the loop hint metadata
node with the given name (for example, "llvm.loop.unroll.count"). If no
such metadata node exists, then nullptr is returned.
Defined at line 1229 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp
-
int parseSummaryIndexAssemblyString (StringRef AsmString, SMDiagnostic & Err)The function is a secondary interface to the LLVM Assembly Parser. It parses
an ASCII string that (presumably) contains LLVM Assembly code for a module
summary. It returns a a ModuleSummaryIndex with the corresponding features.
Note that this does not verify that the generated Index is valid, so you
should run the verifier after parsing the file to check that it is okay.
Parse LLVM Assembly from a string
Parameters
AsmString The string containing assemblyErr Error result info.Defined at line 189 of file llvm/lib/AsmParser/Parser.cpp
-
MachineFunctionPass * createResetMachineFunctionPass (bool EmitFallbackDiag, bool AbortOnFailedISel)This pass resets a MachineFunction when it has the FailedISel property
as if it was just created.
If EmitFallbackDiag is true, the pass will emit a
DiagnosticInfoISelFallback for every MachineFunction it resets.
If AbortOnFailedISel is true, abort compilation instead of resetting.
Defined at line 92 of file llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
-
Value * emitStrChr (Value * Ptr, char C, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strchr function to the builder, for the specified
pointer and character. Ptr is required to be some pointer type, and the
return value has 'i8*' type.
Defined at line 1654 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Expected exprAdd (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Performs operation and
Defined at line 155 of file llvm/lib/FileCheck/FileCheck.cpp
-
bool haveNoCommonBitsSet (const WithCache<const Value *> & LHSCache, const WithCache<const Value *> & RHSCache, const SimplifyQuery & SQ)Return true if LHS and RHS have no common bits set.
Defined at line 237 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool MergeBlockSuccessorsIntoGivenBlocks (SmallPtrSetImpl<BasicBlock *> & MergeBlocks, Loop * L, DomTreeUpdater * DTU, LoopInfo * LI)Merge block(s) sucessors, if possible. Return true if at least two
of the blocks were merged together.
In order to merge, each block must be terminated by an unconditional
branch. If L is provided, then the blocks merged into their predecessors
must be in L. In addition, This utility calls on another utility:
MergeBlockIntoPredecessor. Blocks are successfully merged when the call to
MergeBlockIntoPredecessor returns true.
Defined at line 393 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
template <class T>T * any_cast (Any * Value)Defined at line 159 of file llvm/include/llvm/ADT/Any.h
-
void initializeFEntryInserterLegacyPass (PassRegistry & )Defined at line 64 of file llvm/lib/CodeGen/FEntryInserter.cpp
-
void install_out_of_memory_new_handler ()Installs new handler that causes crash on allocation failure. It is called by
InitLLVM.
Defined at line 225 of file llvm/lib/Support/ErrorHandling.cpp
-
void calculateWinCXXEHStateNumbers (const Function * ParentFn, WinEHFuncInfo & FuncInfo)Analyze the IR in ParentFn and it's handlers to build WinEHFuncInfo, which
describes the state numbers and tables used by __CxxFrameHandler3. This
analysis assumes that WinEHPrepare has already been run.
Defined at line 616 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
MCTargetStreamer * createX86ObjectTargetStreamer (MCStreamer & S, const MCSubtargetInfo & STI)Implements X86-only directives for object files.
Defined at line 463 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp
-
bool RecursivelyDeleteTriviallyDeadInstructionsPermissive (SmallVectorImpl<WeakTrackingVH> & DeadInsts, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU, function AboutToDeleteCallback)Same functionality as RecursivelyDeleteTriviallyDeadInstructions, but allow
instructions that are not trivially dead. These will be ignored.
Returns true if any changes were made, i.e. any instructions trivially dead
were found and deleted.
Defined at line 548 of file llvm/lib/Transforms/Utils/Local.cpp
-
template <typename... Ts>hash_code hash_value (const std::tuple<Ts...> & arg)Compute a hash_code for a tuple.
Defined at line 641 of file llvm/include/llvm/ADT/Hashing.h
-
void UpgradeAttributes (AttrBuilder & B)Upgrade attributes that changed format or kind.
Defined at line 6536 of file llvm/lib/IR/AutoUpgrade.cpp
-
void initializeFinalizeISelPass (PassRegistry & )Defined at line 84 of file llvm/lib/CodeGen/FinalizeISel.cpp
-
void llvm_thread_join_impl (thread::native_handle_type Thread)Defined at line 114 of file llvm/lib/Support/Unix/Threading.inc
-
bool isInTailCallPosition (const CallBase & Call, const TargetMachine & TM, bool ReturnsFirstArg)Test if the given instruction is in a position to be optimized
with a tail-call. This roughly means that it's in a block with
a return and there's nothing that needs to be scheduled
between it and the return.
This function only tests target-independent requirements.
Defined at line 543 of file llvm/lib/CodeGen/Analysis.cpp
-
const DWARFUnitIndex & getDWARFUnitIndex (DWARFContext & Context, DWARFSectionKind Kind)Defined at line 900 of file llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp
-
Expected exprSub (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Defined at line 160 of file llvm/lib/FileCheck/FileCheck.cpp
-
UnrollingPreferences gatherUnrollingPreferences (Loop * L, ScalarEvolution & SE, const TargetTransformInfo & TTI, BlockFrequencyInfo * BFI, ProfileSummaryInfo * PSI, llvm::OptimizationRemarkEmitter & ORE, int OptLevel, optional UserThreshold, optional UserCount, optional UserAllowPartial, optional UserRuntime, optional UserUpperBound, optional UserFullUnrollMaxCount)Gather the various unrolling parameters based on the defaults, compiler
flags, TTI overrides and user specified parameters.
Defined at line 188 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
-
FunctionPass * createDomPrinterWrapperPassPass ()Create methods available outside of this file, to use them
"include/llvm/LinkAllPasses.h". Otherwise the pass would be deleted by
the link time optimization.
Defined at line 196 of file llvm/lib/Analysis/DomPrinter.cpp
-
void initializeFixIrreduciblePass (PassRegistry & )Defined at line 173 of file llvm/lib/Transforms/Utils/FixIrreducible.cpp
-
MCAsmParserExtension * createDarwinAsmParser ()Defined at line 1195 of file llvm/lib/MC/MCParser/DarwinAsmParser.cpp
-
void llvm_thread_detach_impl (thread::native_handle_type Thread)Defined at line 106 of file llvm/lib/Support/Unix/Threading.inc
-
Expected<BitcodeFileContents> getBitcodeFileContents (MemoryBufferRef Buffer)Calls the ctor.
Defined at line 8404 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
bool extractBranchWeights (const Instruction & I, uint64_t & TrueVal, uint64_t & FalseVal)Extract branch weights from a conditional branch or select Instruction.
Parameters
I The instruction to extract branch weights from.TrueVal [out] will contain the branch weight for the True branchFalseVal [out] will contain the branch weight for the False branchDefined at line 213 of file llvm/lib/IR/ProfDataUtils.cpp
-
MCSymbolizer * createMCSymbolizer (const Triple & TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void * DisInfo, MCContext * Ctx, int && RelInfo)Defined at line of file
-
MCSymbolizer * createMCSymbolizer (const Triple & TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void * DisInfo, MCContext * Ctx, std::unique_ptr<MCRelocationInfo> && RelInfo)Defined at line 186 of file llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp
-
FunctionPass * createDomOnlyPrinterWrapperPassPass ()Defined at line 200 of file llvm/lib/Analysis/DomPrinter.cpp
-
void initializeFixupStatepointCallerSavedLegacyPass (PassRegistry & )Defined at line 93 of file llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
-
MCAsmParserExtension * createELFAsmParser ()Defined at line 890 of file llvm/lib/MC/MCParser/ELFAsmParser.cpp
-
void timeTraceProfilerCleanup ()Cleanup the time trace profiler, if it was initialized.
Defined at line 403 of file llvm/lib/Support/TimeProfiler.cpp
-
thread::id llvm_thread_get_id_impl (thread::native_handle_type Thread)Defined at line 122 of file llvm/lib/Support/Unix/Threading.inc
-
Constant * ConstantFoldCastOperand (unsigned int Opcode, Constant * C, Type * DestTy, const DataLayout & DL)Attempt to constant fold a cast with the specified operand. If it
fails, it returns a constant expression of the specified operand.
Defined at line 1485 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void calculateSEHStateNumbers (const Function * ParentFn, WinEHFuncInfo & FuncInfo)Defined at line 592 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
void printRelativeBlockFreq (raw_ostream & OS, BlockFrequency EntryFreq, BlockFrequency Freq)Defined at line 51 of file llvm/lib/Support/BlockFrequency.cpp
-
void filterDeadComdatFunctions (SmallVectorImpl<Function *> & DeadComdatFunctions)Filter out potentially dead comdat functions where other entries keep the
entire comdat group alive.
This is designed for cases where functions appear to become dead but remain
alive due to other live entries in their comdat group.
The
container should only have pointers to
`Function`s which are members of a comdat group and are believed to be
dead.
After this routine finishes, the only remaining `Function`s in
are those where every member of the comdat is listed
and thus removing them is safe (provided *all* are removed).
Defined at line 325 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
Expected exprMul (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Defined at line 165 of file llvm/lib/FileCheck/FileCheck.cpp
-
Value * emitStrNCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the strncmp function to the builder.
Defined at line 1662 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
FunctionPass * createDomViewerWrapperPassPass ()Defined at line 204 of file llvm/lib/Analysis/DomPrinter.cpp
-
FunctionPass * createCodeGenPrepareLegacyPass ()createCodeGenPrepareLegacyPass - Transform the code to expose more pattern
matching during instruction selection.
Defined at line 544 of file llvm/lib/CodeGen/CodeGenPrepare.cpp
-
bool isCompileUnit (const int & U)Defined at line 602 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
-
bool isCompileUnit (const std::unique_ptr<DWARFUnit> & U)Defined at line 602 of file llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h
-
void initializeFlattenCFGLegacyPassPass (PassRegistry & )Defined at line 77 of file llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp
-
MCAsmParserExtension * createCOFFAsmParser ()Defined at line 799 of file llvm/lib/MC/MCParser/COFFAsmParser.cpp
-
thread::id llvm_thread_get_current_id_impl ()Defined at line 124 of file llvm/lib/Support/Unix/Threading.inc
-
Pass * createCanonicalizeFreezeInLoopsPass ()===----------------------------------------------------------------------===//
CanonicalizeFreezeInLoops - Canonicalize freeze instructions in loops so they
don't block SCEV.
Defined at line 268 of file llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
-
std::optional<TensorSpec> getTensorSpecFromJSON (LLVMContext & Ctx, const json::Value & Value)Construct a TensorSpec from a JSON dictionary of the form:
{ "name":
<string
>,
"port":
<int
>,
"type":
<string
. Use LLVM's types, e.g. float, double, int64_t>,
"shape":
<array
of ints> }
For the "type" field, see the C++ primitive types used in
TFUTILS_SUPPORTED_TYPES.
Defined at line 69 of file llvm/lib/Analysis/TensorSpec.cpp
-
void UpgradeOperandBundles (std::vector<OperandBundleDef> & OperandBundles)Upgrade operand bundles (without knowing about their user instruction).
Defined at line 6563 of file llvm/lib/IR/AutoUpgrade.cpp
-
void UpgradeOperandBundles (int & OperandBundles)Upgrade operand bundles (without knowing about their user instruction).
Defined at line of file
-
void DecodeVPPERMMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a VPPERM mask from a raw array of constants such as from
BUILD_VECTOR.
This can only basic masks (permutes + zeros), not any of the other
operations that VPPERM can perform.
Defined at line 325 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Value * simplifyFDivInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for an FDiv, fold the result or return null.
Defined at line 6105 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Register constrainOperandRegClass (const MachineFunction & MF, const TargetRegisterInfo & TRI, MachineRegisterInfo & MRI, const TargetInstrInfo & TII, const RegisterBankInfo & RBI, MachineInstr & InsertPt, const MCInstrDesc & II, MachineOperand & RegMO, unsigned int OpIdx)Try to constrain Reg so that it is usable by argument OpIdx of the provided
MCInstrDesc
If this fails, create a new virtual register in the
correct class and insert a COPY before
if it is a use or after
if it is a definition. In both cases, the function also updates the register
of RegMo.
This is equivalent to constrainOperandRegClass(..., RegClass, ...)
with RegClass obtained from the MCInstrDesc. The debug location of
is used for the new copy.
Returns
The virtual register constrained to the right register class.
Defined at line 108 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
template <typename T>hash_code hash_value (const std::basic_string<T> & arg)Compute a hash_code for a standard string.
Defined at line 648 of file llvm/include/llvm/ADT/Hashing.h
-
template <typename T>hash_code hash_value (const int & arg)Compute a hash_code for a standard string.
Defined at line 648 of file llvm/include/llvm/ADT/Hashing.h
-
FunctionPass * createDomOnlyViewerWrapperPassPass ()Defined at line 208 of file llvm/lib/Analysis/DomPrinter.cpp
-
MCAsmParserExtension * createCOFFMasmParser ()Defined at line 538 of file llvm/lib/MC/MCParser/COFFMasmParser.cpp
-
Expected exprDiv (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Defined at line 170 of file llvm/lib/FileCheck/FileCheck.cpp
-
FunctionPass * createPostDomPrinterWrapperPassPass ()Defined at line 212 of file llvm/lib/Analysis/DomPrinter.cpp
-
void calculateClrEHStateNumbers (const Function * Fn, WinEHFuncInfo & FuncInfo)Defined at line 653 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
void initializeGCEmptyBasicBlocksPass (PassRegistry & )Defined at line 92 of file llvm/lib/CodeGen/GCEmptyBasicBlocks.cpp
-
void timeTraceProfilerFinishThread ()Finish TimeTraceProfilerInstance on a worker thread.
This doesn't remove the instance, just moves the pointer to global vector.
Defined at line 416 of file llvm/lib/Support/TimeProfiler.cpp
-
FunctionPass * createEarlyCSEPass (bool UseMemorySSA)===----------------------------------------------------------------------===//
EarlyCSE - This pass performs a simple and fast CSE pass over the dominator
tree.
Defined at line 1934 of file llvm/lib/Transforms/Scalar/EarlyCSE.cpp
-
bool RemoveRedundantDbgInstrs (BasicBlock * BB)Try to remove redundant dbg.value instructions from given basic block.
Returns true if at least one instruction was removed. Remove redundant
pseudo ops when RemovePseudoOp is true.
Defined at line 583 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
FunctionPass * createPostDomOnlyPrinterWrapperPassPass ()Defined at line 216 of file llvm/lib/Analysis/DomPrinter.cpp
-
void initializeGCMachineCodeAnalysisPass (PassRegistry & )Defined at line 257 of file llvm/lib/CodeGen/GCRootLowering.cpp
-
MCAsmParserExtension * createXCOFFAsmParser ()Defined at line 52 of file llvm/lib/MC/MCParser/XCOFFAsmParser.cpp
-
Expected exprMax (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Defined at line 179 of file llvm/lib/FileCheck/FileCheck.cpp
-
llvm::raw_ostream & operator<< (llvm::raw_ostream & O, const llvm::Annotations::Range & R)Defined at line 175 of file llvm/lib/Testing/Annotations/Annotations.cpp
-
Constant * getInitialValueOfAllocation (const Value * V, const TargetLibraryInfo * TLI, Type * Ty)If this is a call to an allocation function that initializes memory to a
fixed value, return said value in the requested type. Otherwise, return
nullptr.
Defined at line 428 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
mca::CustomBehaviour * createCustomBehaviour (const MCSubtargetInfo & STI, const mca::SourceMgr & SrcMgr, const MCInstrInfo & MCII)Defined at line of file
-
MCStreamer * createX86WinCOFFStreamer (MCContext & C, std::unique_ptr<MCAsmBackend> && AB, std::unique_ptr<MCObjectWriter> && OW, std::unique_ptr<MCCodeEmitter> && CE)Construct an X86 Windows COFF machine code streamer which will generate
PE/COFF format object files.
Takes ownership of
and
Defined at line of file
-
MCStreamer * createX86WinCOFFStreamer (MCContext & C, int && AB, int && OW, int && CE)Construct an X86 Windows COFF machine code streamer which will generate
PE/COFF format object files.
Takes ownership of
and
Defined at line 75 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp
-
template <typename T>hash_code hash_value (const std::optional<T> & arg)Compute a hash_code for a standard string.
Defined at line 652 of file llvm/include/llvm/ADT/Hashing.h
-
FunctionPass * createPostDomViewerWrapperPassPass ()Defined at line 220 of file llvm/lib/Analysis/DomPrinter.cpp
-
FunctionPass * createComplexDeinterleavingPass (const TargetMachine * TM)This pass implements generation of target-specific intrinsics to support
handling of complex number arithmetic
Defined at line 546 of file llvm/lib/CodeGen/ComplexDeinterleavingPass.cpp
-
void initializeGCModuleInfoPass (PassRegistry & )Defined at line 71 of file llvm/lib/CodeGen/GCMetadata.cpp
-
MCAsmParserExtension * createWasmAsmParser ()Defined at line 312 of file llvm/lib/MC/MCParser/WasmAsmParser.cpp
-
Expected exprMin (const APInt & Lhs, const APInt & Rhs, bool & Overflow)Defined at line 185 of file llvm/lib/FileCheck/FileCheck.cpp
-
FunctionPass * createX86AvoidTrailingCallLegacyPass ()Defined at line 66 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp
-
Constant * ConstantFoldIntegerCast (Constant * C, Type * DestTy, bool IsSigned, const DataLayout & DL)Constant fold a zext, sext or trunc, depending on IsSigned and whether the
DestTy is wider or narrower than C. Returns nullptr on failure.
Defined at line 1586 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void DecodeZeroExtendMask (unsigned int SrcScalarBits, unsigned int DstScalarBits, unsigned int NumDstElts, bool IsAnyExtend, SmallVectorImpl<int> & ShuffleMask)Decode a zero extension instruction as a shuffle mask.
Defined at line 371 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isKnownToBeAPowerOfTwo (const Value * V, const DataLayout & DL, bool OrZero, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Return true if the given value is known to have exactly one bit set when
defined. For vectors return true if every element is known to be a power
of two when defined. Supports values with integer or pointer type and
vectors of integers. If 'OrZero' is set, then return true if the given
value is either a power of two or zero.
Defined at line 268 of file llvm/lib/Analysis/ValueTracking.cpp
-
FunctionPass * createPostDomOnlyViewerWrapperPassPass ()Defined at line 224 of file llvm/lib/Analysis/DomPrinter.cpp
-
bool canInstructionHaveMMRAs (const Instruction & I)Defined at line 166 of file llvm/lib/IR/MemoryModelRelaxationAnnotations.cpp
-
void initializeGVNLegacyPassPass (PassRegistry & )Defined at line 3399 of file llvm/lib/Transforms/Scalar/GVN.cpp
-
RetainedKnowledge getKnowledgeFromOperandInAssume (AssumeInst & Assume, unsigned int Idx)Retreive the information help by Assume on the operand at index Idx.
Assume should be an llvm.assume and Idx should be in the operand bundle.
Defined at line 126 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
void calculateCXXStateForAsynchEH (const BasicBlock * BB, int State, WinEHFuncInfo & FuncInfo)For AsynchEH (VC++ option -EHa)
Defined at line 243 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
Value * emitStrCpy (Value * Dst, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strcpy function to the builder, for the specified
pointer arguments.
Defined at line 1673 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
int parseAssembly (MemoryBufferRef F, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots, DataLayoutCallbackTy DataLayoutCallback, AsmParserContext * ParserContext)parseAssemblyFile and parseAssemblyString are wrappers around this function.
Parse LLVM Assembly from a MemoryBuffer.
Parameters
F The MemoryBuffer containing assemblyErr Error result info.Slots The optional slot mapping that will be initialized during parsing.DataLayoutCallback Override datalayout in the llvm assembly.Defined at line 50 of file llvm/lib/AsmParser/Parser.cpp
-
void initializeGlobalDCELegacyPassPass (PassRegistry & )Defined at line 58 of file llvm/lib/Transforms/IPO/GlobalDCE.cpp
-
ModulePass * createLowerGlobalDtorsLegacyPass ()===----------------------------------------------------------------------===//
LowerGlobalDtorsLegacy - Lower
.global_dtors by creating wrapper
functions that are registered in
.global_ctors and which contain a call
to `__cxa_atexit` to register their destructor functions.
Defined at line 59 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp
-
void ReplaceInstWithValue (BasicBlock::iterator & BI, Value * V)Replace all uses of an instruction (specified by BI) with a value, then
remove and delete the original instruction.
Defined at line 608 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void ReplaceInstWithValue (int & BI, Value * V)Replace all uses of an instruction (specified by BI) with a value, then
remove and delete the original instruction.
Defined at line of file
-
bool attributesPermitTailCall (const Function * F, const Instruction * I, const ReturnInst * Ret, const TargetLoweringBase & TLI, bool * AllowDifferingSizes)Test if given that the input instruction is in the tail call position, if
there is an attribute mismatch between the caller and the callee that will
inhibit tail call optimizations.
is an output parameter which, if forming a tail call
is permitted, determines whether it's permitted only if the size of the
caller's and callee's return types match exactly.
Defined at line 592 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeGlobalMergeFuncPassWrapperPass (PassRegistry & )Defined at line 590 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp
-
void calculateSEHStateForAsynchEH (const BasicBlock * BB, int State, WinEHFuncInfo & FuncInfo)The central theory of this routine is based on the following:
A _try scope is always a SEME (Single Entry Multiple Exits) region
as jumping into a _try is not allowed
The single entry must start with a seh_try_begin() invoke with a
correct State number that is the initial state of the SEME.
Through control-flow, state number is propagated into all blocks.
Side exits marked by seh_try_end() will unwind to parent state via
existing SEHUnwindMap[].
Side exits can ONLY jump into parent scopes (lower state number).
Thus, when a block succeeds various states from its predecessors,
the lowest State trumphs others.
If some exits flow to unreachable, propagation on those paths terminate,
not affecting remaining blocks.
Defined at line 305 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
bool extractProfTotalWeight (const MDNode * ProfileData, uint64_t & TotalWeights)Retrieve the total of all weights from MD_prof data.
Parameters
ProfileData The profile data to extract the total weight fromTotalWeights [out] input variable to fill with total weightsDefined at line 233 of file llvm/lib/IR/ProfDataUtils.cpp
-
mca::InstrPostProcess * createInstrPostProcess (const MCSubtargetInfo & STI, const MCInstrInfo & MCII)Defined at line of file
-
BasicBlock * CloneBasicBlock (const BasicBlock * BB, ValueToValueMapTy & VMap, const Twine & NameSuffix, Function * F, ClonedCodeInfo * CodeInfo, bool MapAtoms)Return a copy of the specified basic block, but without
embedding the block into a particular function. The block returned is an
exact copy of the specified basic block, without any remapping having been
performed. Because of this, this is only suitable for applications where
the basic block will be inserted into the same function that it was cloned
from (loop unrolling would use this, for example).
Also, note that this function makes a direct copy of the basic block, and
can thus produce illegal LLVM code. In particular, it will copy any PHI
nodes from the original block, even though there are no predecessors for the
newly cloned block (thus, phi nodes will have to be updated). Also, this
block will branch to the old successors of the original block: these
successors will have to have any PHI nodes updated to account for the new
incoming edges.
The correlation between instructions in the source and result basic blocks
is recorded in the VMap map.
If you have a particular suffix you'd like to use to add to any cloned
names, specify it as the optional third parameter.
If you would like the basic block to be auto-inserted into the end of a
function, you can specify it as the optional fourth parameter.
If you would like to collect additional information about the cloned
function, you can specify a ClonedCodeInfo object with the optional fifth
parameter.
indicates whether source location atoms should be mapped for
later remapping. Must be true when you duplicate a code path and a source
location is intended to appear twice in the generated instructions. Can be
set to false if you are transplanting code from one place to another.
Setting true (default) is always safe (won't produce incorrect debug info)
but is sometimes unnecessary, causing extra work that could be avoided by
setting the parameter to false.
Defined at line 112 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
bool RecursivelyDeleteDeadPHINode (PHINode * PN, const TargetLibraryInfo * TLI, MemorySSAUpdater * MSSAU)If the specified value is an effectively dead PHI node, due to being a
def-use chain of single-use nodes that either forms a cycle or is terminated
by a trivially dead instruction, delete it. If that makes any of its
operands trivially dead, delete them too, recursively. Return true if a
change was made.
Defined at line 641 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * simplifyFRemInst (Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q, ExceptionBehavior ExBehavior, RoundingMode Rounding)Given operands for an FRem, fold the result or return null.
Defined at line 6143 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void WriteBitcodeToFile (const Module & M, raw_ostream & Out, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex * Index, bool GenerateHash, ModuleHash * ModHash)Write the specified module to the specified output stream.
Defined at line 5598 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
-
void initializeGlobalMergePass (PassRegistry & )Defined at line 260 of file llvm/lib/CodeGen/GlobalMerge.cpp
-
FunctionPass * createConstantHoistingPass ()===----------------------------------------------------------------------===//
ConstantHoisting - This pass prepares a function for expensive constants.
Defined at line 135 of file llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
-
FunctionPass * createX86CallFrameOptimization ()Return a pass that optimizes the code-size of x86 call sequences. This is
done by replacing esp-relative movs with pushes.
Defined at line 627 of file llvm/lib/Target/X86/X86CallFrameOptimization.cpp
-
MCStreamer * createX86ELFStreamer (const Triple & T, MCContext & Context, std::unique_ptr<MCAsmBackend> && MAB, std::unique_ptr<MCObjectWriter> && MOW, std::unique_ptr<MCCodeEmitter> && MCE)Defined at line of file
-
MCStreamer * createX86ELFStreamer (const Triple & T, MCContext & Context, int && MAB, int && MOW, int && MCE)Defined at line 1529 of file llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
-
void initializeGlobalsAAWrapperPassPass (PassRegistry & )Defined at line 1044 of file llvm/lib/Analysis/GlobalsModRef.cpp
-
void DecodeZeroMoveLowMask (unsigned int NumElts, SmallVectorImpl<int> & ShuffleMask)Decode a move lower and zero upper instruction as a shuffle mask.
Defined at line 385 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Constant * ConstantFoldLoadFromConst (Constant * C, Type * Ty, const APInt & Offset, const DataLayout & DL)Extract value of C at the given Offset reinterpreted as Ty. If bits past
the end of C are accessed, they are assumed to be poison.
Defined at line 714 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void initializeHardwareLoopsLegacyPass (PassRegistry & )Defined at line 596 of file llvm/lib/CodeGen/HardwareLoops.cpp
-
optional getAllocationFamily (const Value * I, const TargetLibraryInfo * TLI)If a function is part of an allocation family (e.g.
malloc/realloc/calloc/free), return the identifier for its family
of functions.
Defined at line 502 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
mca::InstrumentManager * createInstrumentManager (const MCSubtargetInfo & STI, const MCInstrInfo & MCII)Defined at line of file
-
void report_bad_alloc_error (const char * Reason, bool GenCrashDiag)Reports a bad alloc error, calling any user defined bad alloc
error handler. In contrast to the generic 'report_fatal_error'
functions, this function might not terminate, e.g. the user
defined error handler throws an exception, but it won't return.
Note: When throwing an exception in the bad alloc handler, make sure that
the following unwind succeeds, e.g. do not trigger additional allocations
in the unwind chain.
If no error handler is installed (default), throws a bad_alloc exception
if LLVM is compiled with exception support. Otherwise prints the error
to standard error and calls abort().
Defined at line 178 of file llvm/lib/Support/ErrorHandling.cpp
-
Value * emitStpCpy (Value * Dst, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the stpcpy function to the builder, for the specified
pointer arguments.
Defined at line 1680 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void initializeLibcallLoweringInfoWrapperPass (PassRegistry & )Defined at line 55 of file llvm/lib/CodeGen/LibcallLoweringInfo.cpp
-
std::optional<PseudoProbe> extractProbe (const Instruction & Inst)Defined at line 54 of file llvm/lib/IR/PseudoProbe.cpp
-
void initializeMIRProfileLoaderPassPass (PassRegistry & )Defined at line 76 of file llvm/lib/CodeGen/MIRSampleProfile.cpp
-
void timeTraceProfilerWrite (raw_pwrite_stream & OS)Write profiling data to output stream.
Data produced is JSON, in Chrome "Trace Event" format, see
https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview
Defined at line 423 of file llvm/lib/Support/TimeProfiler.cpp
-
basic_string getUniqueModuleId (Module * M)Produce a unique identifier for this module by taking the MD5 sum of
the names of the module's strong external symbols that are not comdat
members.
This identifier is normally guaranteed to be unique, or the program would
fail to link due to multiply defined symbols.
If the module has no strong external symbols (such a module may still have a
semantic effect if it performs global initialization), we cannot produce a
unique identifier for this module, so we return the empty string.
Defined at line 353 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
void ReplaceInstWithInst (BasicBlock * BB, int & BI, Instruction * I)Replace the instruction specified by BI with the instruction specified by I.
Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The
original instruction is deleted and BI is updated to point to the new
instruction.
Defined at line of file
-
void ReplaceInstWithInst (BasicBlock * BB, BasicBlock::iterator & BI, Instruction * I)Replace the instruction specified by BI with the instruction specified by I.
Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc. The
original instruction is deleted and BI is updated to point to the new
instruction.
Defined at line 621 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void DecodeScalarMoveMask (unsigned int NumElts, bool IsLoad, SmallVectorImpl<int> & ShuffleMask)Decode a scalar float move instruction as a shuffle mask.
Defined at line 391 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isKnownToBeAPowerOfTwo (const Value * V, bool OrZero, const SimplifyQuery & Q, unsigned int Depth)Return true if the given value is known to have exactly one
bit set when defined. For vectors return true if every element is known to
be a power of two when defined. Supports values with integer or pointer
types and vectors of integers.
Defined at line 2623 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeIRSimilarityIdentifierWrapperPassPass (PassRegistry & )Defined at line 1470 of file llvm/lib/Analysis/IRSimilarityIdentifier.cpp
-
FunctionPass * createX86WinEHStatePass ()Return an IR pass that inserts EH registration stack objects and explicit
EH state updates. This pass must run after EH preparation, which does
Windows-specific but architecture-neutral preparation.
Defined at line 120 of file llvm/lib/Target/X86/X86WinEHState.cpp
-
void runDeltaPass (TestRunner & Test, const DeltaPass & Pass)Runs the Delta Debugging algorithm, splits the code into chunks and
reduces the amount of chunks that are considered interesting by the
given test. The number of chunks is determined by a preliminary run of the
reduction pass where no change must be made to the module.
Defined at line 185 of file llvm/tools/llvm-reduce/deltas/Delta.cpp
-
bool isTriviallyVectorizable (Intrinsic::ID ID)Identify if the intrinsic is trivially vectorizable.
This method returns true if the intrinsic's argument types are all scalars
for the scalar form of the intrinsic and all vectors (or scalars handled by
isVectorIntrinsicWithScalarOpAtArg) for the vector form of the intrinsic.
Note: isTriviallyVectorizable implies isTriviallyScalarizable.
Defined at line 46 of file llvm/lib/Analysis/VectorUtils.cpp
-
void setProbeDistributionFactor (Instruction & Inst, float Factor)Defined at line 74 of file llvm/lib/IR/PseudoProbe.cpp
-
void initializeIRTranslatorPass (PassRegistry & )Defined at line 110 of file llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
-
FunctionPass * createSinkingPass ()===----------------------------------------------------------------------===//
Sink - Code Sinking
Defined at line 275 of file llvm/lib/Transforms/Scalar/Sink.cpp
-
void mapAtomInstance (const DebugLoc & DL, int & VMap)Mark a cloned instruction as a new instance so that its source loc can
be updated when remapped.
Defined at line of file
-
void mapAtomInstance (const DebugLoc & DL, ValueToValueMapTy & VMap)Mark a cloned instruction as a new instance so that its source loc can
be updated when remapped.
Defined at line 47 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
Value * simplifyShlInst (Value * Op0, Value * Op1, bool IsNSW, bool IsNUW, const SimplifyQuery & Q)Given operands for a Shl, fold the result or return null.
Defined at line 1435 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
int createX86MachObjectWriter (bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype)Construct an X86 Mach-O object writer.
Defined at line 577 of file llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
-
bool delinearizeFixedSizeArray (ScalarEvolution & SE, const SCEV * Expr, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes, const SCEV * ElementSize)Split this SCEVAddRecExpr into two vectors of SCEVs representing the
subscripts and sizes of an access to a fixed size array. This is a special
case of delinearization for fixed size arrays.
The delinearization is a 2 step process: the first step estimates the sizes
of each dimension of the array. The second step computes the access
functions for the delinearized array:
1. Compute the array size
2. Compute the access function: same as normal delinearization
Different from the normal delinearization, this function assumes that NO
terms exist in the
In other words, it assumes that the all step
values are constant.
This function is intended to replace getIndexExpressionsFromGEP. They rely
on the GEP source element type so that will be removed in the future.
Defined at line 644 of file llvm/lib/Analysis/Delinearization.cpp
-
bool returnTypeIsEligibleForTailCall (const Function * F, const Instruction * I, const ReturnInst * Ret, const TargetLoweringBase & TLI, bool ReturnsFirstArg)Test if given that the input instruction is in the tail call position if the
return type or any attributes of the function will inhibit tail call
optimization.
Defined at line 652 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeIVUsersWrapperPassPass (PassRegistry & )Defined at line 48 of file llvm/lib/Analysis/IVUsers.cpp
-
void createProfileSamplingVar (Module & M)Create the variable for profile sampling.
Defined at line 2139 of file llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
-
Constant * ConstantFoldLoadFromConst (Constant * C, Type * Ty, const DataLayout & DL)Extract value of C reinterpreted as Ty. Same as previous API with zero
offset.
Defined at line 740 of file llvm/lib/Analysis/ConstantFolding.cpp
-
Value * emitStrNCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strncpy function to the builder, for the specified
pointer arguments and length.
Defined at line 1687 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool constrainSelectedInstRegOperands (MachineInstr & I, const TargetInstrInfo & TII, const TargetRegisterInfo & TRI, const RegisterBankInfo & RBI)Mutate the newly-selected instruction
to constrain its (possibly
generic) virtual register operands to the instruction's register class.
This could involve inserting COPYs before (for uses) or after (for defs).
This requires the number of operands to match the instruction description.
FIXME: Not all instructions have the same number of operands. We should
probably expose a constrain helper per operand and let the target selector
constrain individual registers, like fast-isel.
Defined at line 155 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool isOnlyUsedInZeroComparison (const Instruction * CxtI)Defined at line 256 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeIfConverterPass (PassRegistry & )Defined at line 456 of file llvm/lib/CodeGen/IfConversion.cpp
-
bool extractProfTotalWeight (const Instruction & I, uint64_t & TotalWeights)Retrieve the total of all weights from an instruction.
Parameters
I The instruction to extract the total weight fromTotalWeights [out] input variable to fill with total weightsDefined at line 262 of file llvm/lib/IR/ProfDataUtils.cpp
-
void DecodeEXTRQIMask (unsigned int NumElts, unsigned int EltSize, int Len, int Idx, SmallVectorImpl<int> & ShuffleMask)Decode a SSE4A EXTRQ instruction as a shuffle mask.
Defined at line 400 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void llvm_unreachable_internal (const char * msg, const char * file, unsigned int line)This function calls abort(), and prints the optional message to stderr.
Use the llvm_unreachable macro (that adds location info), instead of
calling this function directly.
Defined at line 233 of file llvm/lib/Support/ErrorHandling.cpp
-
bool operator== (const iterator & , const iterator & )Comparison operators are provided out of line.
Defined at line 166 of file llvm/include/llvm/DebugInfo/DWARF/LowLevel/DWARFExpression.h
-
void ReplaceInstWithInst (Instruction * From, Instruction * To)Replace the instruction specified by From with the instruction specified by
To. Copies DebugLoc from BI to I, if I doesn't already have a DebugLoc.
Defined at line 655 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void initializeImmutableModuleSummaryIndexWrapperPassPass (PassRegistry & )Defined at line 1244 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
bool SimplifyInstructionsInBlock (BasicBlock * BB, const TargetLibraryInfo * TLI)Scan the specified basic block and try to simplify any instructions in it
and recursively delete dead instructions.
This returns true if it changed the code, note that it can delete
instructions in other blocks as well in this block.
Defined at line 721 of file llvm/lib/Transforms/Utils/Local.cpp
-
void embedBufferInModule (Module & M, MemoryBufferRef Buf, StringRef SectionName, Align Alignment)Embed the memory buffer
into the module
as a global using the
specified section name. Also provide a metadata entry to identify it in the
module using the same section name.
Defined at line 384 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
bool isOnlyUsedInZeroEqualityComparison (const Instruction * CxtI)Defined at line 261 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * simplifyLShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q)Given operands for a LShr, fold the result or return null.
Defined at line 1472 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
int createX86ELFObjectWriter (bool IsELF64, uint8_t OSABI, uint16_t EMachine)Construct an X86 ELF object writer.
Defined at line 400 of file llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp
-
Expected<LLVMRemarkFileHandle> setupLLVMOptimizationRemarks (LLVMContext & Context, StringRef RemarksFilename, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, optional RemarksHotnessThreshold)Set up optimization remarks that output to a file. The LLVMRemarkFileHandle
manages the lifetime of the underlying ToolOutputFile to ensure
is called before the file is destroyed or
released from the handle. The handle must be kept alive until all remarks
were emitted through the remark streamer.
Defined at line 95 of file llvm/lib/IR/LLVMRemarkStreamer.cpp
-
void initializeImplicitNullChecksPass (PassRegistry & )Defined at line 813 of file llvm/lib/CodeGen/ImplicitNullChecks.cpp
-
FunctionPass * createX86ExpandPseudoPass ()Return a Machine IR pass that expands X86-specific pseudo
instructions into a sequence of actual instructions. This pass
must run after prologue/epilogue insertion and before lowering
the MachineInstr to MC.
Defined at line 944 of file llvm/lib/Target/X86/X86ExpandPseudo.cpp
-
Error timeTraceProfilerWrite (StringRef PreferredFileName, StringRef FallbackFileName)Write profiling data to a file.
The function will write to
if provided, if not
then will write to
appending .time-trace.
Returns a StringError indicating a failure if the function is
unable to open the file for writing.
Defined at line 429 of file llvm/lib/Support/TimeProfiler.cpp
-
void initializeIndirectBrExpandLegacyPassPass (PassRegistry & )Defined at line 95 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp
-
Pass * createLowerAtomicPass ()===----------------------------------------------------------------------===//
LowerAtomic - Lower atomic intrinsics to non-atomic form
Defined at line 98 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp
-
Value * emitStpNCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the stpncpy function to the builder, for the specified
pointer arguments and length.
Defined at line 1695 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void DecodeINSERTQIMask (unsigned int NumElts, unsigned int EltSize, int Len, int Idx, SmallVectorImpl<int> & ShuffleMask)Decode a SSE4A INSERTQ instruction as a shuffle mask.
Defined at line 437 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
Constant * ConstantFoldLoadFromConstPtr (Constant * C, Type * Ty, APInt Offset, const DataLayout & DL)Return the value that a load from C with offset Offset would produce if it
is constant and determinable. If this is not determinable, return null.
Defined at line 745 of file llvm/lib/Analysis/ConstantFolding.cpp
-
ParsedModuleAndIndex parseAssemblyWithIndex (MemoryBufferRef F, SMDiagnostic & Err, LLVMContext & Context, SlotMapping * Slots)Parse LLVM Assembly including the summary index from a MemoryBuffer.
parseAssemblyFileWithIndex is a wrapper around this function.
Parameters
F The MemoryBuffer containing assembly with summaryErr Error result info.Slots The optional slot mapping that will be initialized during parsing.Defined at line 96 of file llvm/lib/AsmParser/Parser.cpp
-
void writeThinLinkBitcodeToFile (const Module & M, raw_ostream & Out, const ModuleSummaryIndex & Index, const ModuleHash & ModHash)Write the specified thin link bitcode file (i.e., the minimized bitcode
file) to the given raw output stream, where it will be written in a new
bitcode block. The thin link bitcode file is used for thin link, and it
only contains the necessary information for thin link.
ModHash is for use in ThinLTO incremental build, generated while the IR
bitcode file writing.
Defined at line 5806 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, AliasResult AR)<
<
operator for AliasResult.
Defined at line 408 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
bool funcReturnsFirstArgOfCall (const CallInst & CI)Returns true if the parent of
returns CI's first argument after
calling
Defined at line 723 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeInferAddressSpacesPass (PassRegistry & )Defined at line 264 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
-
int createX86WinCOFFObjectWriter (bool Is64Bit)Construct an X86 Win COFF object writer.
Defined at line 126 of file llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
-
Value * FindAvailableLoadedValue (LoadInst * Load, BasicBlock * ScanBB, BasicBlock::iterator & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)Scan backwards to see if we have the value of the given load available
locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call
this function, if ScanFrom points at the beginning of the block, it's safe
to continue scanning the predecessors.
Note that performing load CSE requires special care to make sure the
metadata is set appropriately. In particular, aliasing metadata needs
to be merged. (This doesn't matter for store-to-load forwarding because
the only relevant load gets deleted.)
Parameters
Load The load we want to replace.ScanBB The basic block to scan.ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.AA Optional pointer to alias analysis, to make the scan more precise.IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.Defined at line 542 of file llvm/lib/Analysis/Loads.cpp
-
void initializeInstSimplifyLegacyPassPass (PassRegistry & )Defined at line 115 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
-
FunctionPass * createX86CmovConverterPass ()This pass converts X86 cmov instructions into branch when profitable.
Defined at line 893 of file llvm/lib/Target/X86/X86CmovConversion.cpp
-
Value * simplifyAShrInst (Value * Op0, Value * Op1, bool IsExact, const SimplifyQuery & Q)Given operands for a AShr, fold the result or return nulll.
Defined at line 1505 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool canReplaceReg (Register DstReg, Register SrcReg, MachineRegisterInfo & MRI)Check if DstReg can be replaced with SrcReg depending on the register
constraints.
Defined at line 201 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool validateDelinearizationResult (ScalarEvolution & SE, ArrayRef Sizes, ArrayRef Subscripts)Check that each subscript in
is within the corresponding size
in
For the outermost dimension, the subscript being negative is
allowed.
Defined at line 736 of file llvm/lib/Analysis/Delinearization.cpp
-
void initializeInstructionCombiningPassPass (PassRegistry & )Defined at line 6165 of file llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
-
int getEHScopeMembership (const MachineFunction & MF)Defined at line 760 of file llvm/lib/CodeGen/Analysis.cpp
-
void initializeInstructionSelectPass (PassRegistry & )Defined at line 62 of file llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp
-
bool IsBlockFollowedByDeoptOrUnreachable (const BasicBlock * BB)Check if we can prove that all paths starting from this block converge
to a block that either has a
.experimental.deoptimize call
prior to its terminating return instruction or is terminated by unreachable.
All blocks in the traversed sequence must have an unique successor, maybe
except for the last one.
Defined at line 641 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Error registerELFGraphInfo (Session & S, jitlink::LinkGraph & G)Record symbols, GOT entries, stubs, and sections for ELF file.
Defined at line 103 of file llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp
-
bool isTriviallyScalarizable (Intrinsic::ID ID, const TargetTransformInfo * TTI)Note: There are intrinsics where implementing vectorization for the
intrinsic is redundant, but we want to implement scalarization of the
vector. To prevent the requirement that an intrinsic also implements
vectorization we provide this separate function.
Defined at line 124 of file llvm/lib/Analysis/VectorUtils.cpp
-
void setBranchWeights (Instruction & I, ArrayRef Weights, bool IsExpected, bool ElideAllZero)Create a new `branch_weights` metadata node and add or overwrite
a `prof` metadata reference to instruction `I`.
Parameters
I the Instruction to set branch weights on.Weights an array of weights to set on instruction I.IsExpected were these weights added from an llvm.expect* intrinsic.Defined at line 310 of file llvm/lib/IR/ProfDataUtils.cpp
-
void DecodeVPERMILPMask (unsigned int NumElts, unsigned int ScalarBits, ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a VPERMILPD/VPERMILPS variable mask from a raw array of constants.
Defined at line 477 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void calculateDbgEntityHistory (const MachineFunction * MF, const TargetRegisterInfo * TRI, DbgValueHistoryMap & DbgValues, DbgLabelInstrMap & DbgLabels)Defined at line 467 of file llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
-
void initializeInterleavedAccessPass (PassRegistry & )Defined at line 199 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp
-
bool replaceDbgUsesWithUndef (Instruction * I)Replace all the uses of an SSA value in
.dbg intrinsics with
undef. This is useful for signaling that a variable, e.g. has been
found dead and hence it's unavailable at a given program point.
Returns true if the dbg values have been changed.
Defined at line 610 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * emitMemCpyChk (Value * Dst, Value * Src, Value * Len, Value * ObjSize, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the __memcpy_chk function to the builder. This expects that
the Len and ObjSize have type 'size_t' and Dst/Src are pointers.
Defined at line 1703 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool isAssumeWithEmptyBundle (const AssumeInst & Assume)Return true iff the operand bundles of the provided llvm.assume doesn't
contain any valuable information. This is true when:
- The operand bundle is empty
- The operand bundle only contains information about dropped values or
constant folded values.
the argument to the call of llvm.assume may still be useful even if the
function returned true.
Defined at line 132 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
Value * simplifyAndInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for an And, fold the result or return null.
Defined at line 2251 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void initializeInterleavedLoadCombinePass (PassRegistry & )Defined at line 1366 of file llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
-
Pass * createMergeICmpsLegacyPass ()===----------------------------------------------------------------------===//
MergeICmps - Merge integer comparison chains into a memcmp
Defined at line 959 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp
-
Constant * ConstantFoldLoadFromConstPtr (Constant * C, Type * Ty, const DataLayout & DL)Return the value that a load from C would produce if it is constant and
determinable. If this is not determinable, return null.
Defined at line 767 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool isKnownNonZero (const Value * V, const SimplifyQuery & Q, unsigned int Depth)Return true if the given value is known to be non-zero when defined. For
vectors, return true if every element is known to be non-zero when
defined. For pointers, if the context instruction and dominator tree are
specified, perform context-sensitive analysis and return true if the
pointer couldn't possibly be null at the specified instruction.
Supports values with integer or pointer type and vectors of integers.
Defined at line 3744 of file llvm/lib/Analysis/ValueTracking.cpp
-
TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, StringRef Detail)Manually begin a time section, with the given
and
Profiler copies the string data, so the pointers can be given into
temporaries. Time sections can be hierarchical; every Begin must have a
matching End pair but they can nest.
Defined at line 449 of file llvm/lib/Support/TimeProfiler.cpp
-
Error setupLLVMOptimizationRemarks (LLVMContext & Context, raw_ostream & OS, StringRef RemarksPasses, StringRef RemarksFormat, bool RemarksWithHotness, optional RemarksHotnessThreshold)Set up optimization remarks that output directly to a raw_ostream.
is managed by the caller and must be open for writing until
is called.
Defined at line 153 of file llvm/lib/IR/LLVMRemarkStreamer.cpp
-
MCELFStreamer * createARMELFStreamer (MCContext & Context, unique_ptr TAB, unique_ptr OW, unique_ptr Emitter, bool IsThumb, bool IsAndroid)Defined at line of file
-
MCELFStreamer * createARMELFStreamer (MCContext & Context, int TAB, int OW, int Emitter, bool IsThumb, bool IsAndroid)Defined at line of file
-
void initializeJMCInstrumenterPass (PassRegistry & )Defined at line 62 of file llvm/lib/CodeGen/JMCInstrumenter.cpp
-
Error registerMachOGraphInfo (Session & S, jitlink::LinkGraph & G)Record symbols, GOT entries, stubs, and sections for MachO file.
Defined at line 71 of file llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp
-
bool isTriviallyDead (const MachineInstr & MI, const MachineRegisterInfo & MRI)Check whether an instruction
is dead: it only defines dead virtual
registers, and doesn't have other side effects.
Defined at line 222 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Function * CloneFunction (Function * F, ValueToValueMapTy & VMap, ClonedCodeInfo * CodeInfo)Return a copy of the specified function and add it to that
function's module. Also, any references specified in the VMap are changed
to refer to their mapped value instead of the original one. If any of the
arguments to the function are in the VMap, the arguments are deleted from
the resultant function. The VMap is updated to include mappings from all of
the instructions and basicblocks in the function from their old to new
values. The final argument captures information about the cloned code if
non-null.
Defined at line 370 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
int fitWeights (ArrayRef Weights)Push the weights right to fit in uint32_t.
Defined at line 89 of file llvm/lib/IR/ProfDataUtils.cpp
-
void initializeKCFIPass (PassRegistry & )Defined at line 59 of file llvm/lib/CodeGen/KCFI.cpp
-
FunctionPass * createX86FixupBWInsts ()Return a Machine IR pass that selectively replaces
certain byte and word instructions by equivalent 32 bit instructions,
in order to eliminate partial register usage, false dependences on
the upper portions of registers, and to save code size.
Defined at line 151 of file llvm/lib/Target/X86/X86FixupBWInsts.cpp
-
TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, llvm::function_ref<std::string ()> Detail)Defined at line 458 of file llvm/lib/Support/TimeProfiler.cpp
-
Value * simplifyOrInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for an Or, fold the result or return null.
Defined at line 2525 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void initializeLCSSAVerificationPassPass (PassRegistry & )Defined at line 394 of file llvm/lib/Analysis/LoopPass.cpp
-
MCRegister getX86SubSuperRegister (MCRegister Reg, unsigned int Size, bool High)Parameters
Reg speicifed register.Size the bit size of returned register.High requires the high register.Defined at line 750 of file llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
-
void DecodeVPERMIL2PMask (unsigned int NumElts, unsigned int ScalarBits, unsigned int M2Z, ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a VPERMIL2PD/VPERMIL2PS variable mask from a raw array of constants.
Defined at line 499 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void initializeLCSSAWrapperPassPass (PassRegistry & )Defined at line 522 of file llvm/lib/Transforms/Utils/LCSSA.cpp
-
Error registerCOFFGraphInfo (Session & S, jitlink::LinkGraph & G)Record symbols, GOT entries, stubs, and sections for COFF file.
Defined at line 68 of file llvm/tools/llvm-jitlink/llvm-jitlink-coff.cpp
-
RetainedKnowledge getKnowledgeFromUse (const Use * U, ArrayRef<Attribute::AttrKind> AttrKinds)Return a valid Knowledge associated to the Use U if its Attribute kind is
in AttrKinds.
Defined at line 147 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
int parseSummaryIndexAssembly (MemoryBufferRef F, SMDiagnostic & Err)Parse LLVM Assembly for summary index from a MemoryBuffer.
parseSummaryIndexAssemblyFile is a wrapper around this function.
Parameters
F The MemoryBuffer containing assembly with summaryErr Error result info.Defined at line 165 of file llvm/lib/AsmParser/Parser.cpp
-
Value * FindAvailableLoadedValue (LoadInst * Load, BatchAAResults & AA, bool * IsLoadCSE, unsigned int MaxInstsToScan)This overload provides a more efficient implementation of
FindAvailableLoadedValue() for the case where we are not interested in
finding the closest clobbering instruction if no available load is found.
This overload cannot be used to scan across multiple blocks.
Defined at line 759 of file llvm/lib/Analysis/Loads.cpp
-
bool isVectorIntrinsicWithScalarOpAtArg (Intrinsic::ID ID, unsigned int ScalarOpdIdx, const TargetTransformInfo * TTI)Identifies if the vector form of the intrinsic has a scalar operand.
Defined at line 148 of file llvm/lib/Analysis/VectorUtils.cpp
-
void writeIndexToFile (const ModuleSummaryIndex & Index, raw_ostream & Out, const int * ModuleToSummariesForIndex, const int * DecSummaries)Write the specified module summary index to the given raw output stream,
where it will be written in a new bitcode block. This is used when
writing the combined index file for ThinLTO. When writing a subset of the
index for a distributed backend, provide the
map.
specifies the set of summaries for which the
corresponding value should be imported as a declaration (prototype).
Defined at line of file
-
void writeIndexToFile (const ModuleSummaryIndex & Index, raw_ostream & Out, const ModuleToSummariesForIndexTy * ModuleToSummariesForIndex, const GVSummaryPtrSet * DecSummaries)Write the specified module summary index to the given raw output stream,
where it will be written in a new bitcode block. This is used when
writing the combined index file for ThinLTO. When writing a subset of the
index for a distributed backend, provide a
map.
Defined at line 5645 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
-
Pass * callDefaultCtor ()Specialization for the API used by the analysis infrastructure to create
an instance of the eviction advisor.
Defined at line 147 of file llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp
-
void initializeLazyBFIPassPass (PassRegistry & )Defined at line 66 of file llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp
-
Value * emitMemPCpy (Value * Dst, Value * Src, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the mempcpy function.
Defined at line 1725 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Value * simplifyXorInst (Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for an Xor, fold the result or return null.
Defined at line 2610 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
FunctionPass * createX86DomainReassignmentPass ()Return a Machine IR pass that reassigns instruction chains from one domain
to another, when profitable.
Defined at line 837 of file llvm/lib/Target/X86/X86DomainReassignment.cpp
-
std::optional<ThreadPoolStrategy> get_threadpool_strategy (StringRef Num, ThreadPoolStrategy Default)Build a strategy from a number of threads as a string provided in
When Num is above the max number of threads specified by the
strategy, we attempt to equally allocate the threads on all CPU sockets.
"0" or an empty string will return the
strategy.
"all" for using all hardware threads.
Defined at line 101 of file llvm/lib/Support/Threading.cpp
-
void reportGISelFailure (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, MachineOptimizationRemarkMissed & R)Report an ISel error as a missed optimization remark to the LLVMContext's
diagnostic stream. Set the FailedISel MachineFunction property.
Defined at line 259 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void setFittedBranchWeights (Instruction & I, ArrayRef Weights, bool IsExpected, bool ElideAllZero)Variant of `setBranchWeights` where the `Weights` will be fit first to
uint32_t by shifting right.
Defined at line 323 of file llvm/lib/IR/ProfDataUtils.cpp
-
TimeTraceProfilerEntry * timeTraceProfilerBegin (StringRef Name, llvm::function_ref<TimeTraceMetadata ()> MetaData)Defined at line 467 of file llvm/lib/Support/TimeProfiler.cpp
-
bool sinkRegion (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , TargetLibraryInfo * , TargetTransformInfo * , Loop * CurLoop, MemorySSAUpdater & , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * , Loop * OutermostLoop)Walk the specified region of the CFG (defined by all blocks
dominated by the specified block, and that are in the current loop) in
reverse depth first order w.r.t the DominatorTree. This allows us to visit
uses before definitions, allowing us to sink a loop body in one pass without
iteration. Takes DomTreeNode, AAResults, LoopInfo, DominatorTree,
TargetLibraryInfo, Loop, AliasSet information for all
instructions of the loop and loop safety information as
arguments. Diagnostics is emitted via
It returns changed status.
is a loop to do sinking on.
is used only when
this function is called by
Defined at line 559 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
Printable printJumpTableEntryReference (unsigned int Idx)Prints a jump table entry reference.
The format is:
%jump-table.5 - a jump table entry with index == 5.
Usage: OS
<
<
printJumpTableEntryReference(Idx)
<
<
'
';
Defined at line 1452 of file llvm/lib/CodeGen/MachineFunction.cpp
-
void enableStatistics (Session & S, bool UsingOrcRuntime)Adds a statistics gathering plugin if any stats options are used.
Defined at line 132 of file llvm/tools/llvm-jitlink/llvm-jitlink-statistics.cpp
-
Constant * ConstantFoldLoadFromUniformValue (Constant * C, Type * Ty, const DataLayout & DL)If C is a uniform value where all bits are the same (either all zero, all
ones, all undef or all poison), return the corresponding uniform value in
the new type. If the value is not uniform or the result cannot be
represented, return null.
Defined at line 773 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool isKnownNegation (const Value * X, const Value * Y, bool NeedNSW, bool AllowPoison)Return true if the two given values are negation.
Currently can recoginze Value pair:
1:
<X
, Y> if X = sub (0, Y) or Y = sub (0, X)
2:
<X
, Y> if X = sub (A, B) and Y = sub (B, A)
Defined at line 8729 of file llvm/lib/Analysis/ValueTracking.cpp
-
RegAllocPriorityAdvisorAnalysisLegacy * createReleaseModePriorityAdvisorAnalysis ()Defined at line 310 of file llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp
-
bool lowerGlobalIFuncUsersAsGlobalCtor (Module & M, ArrayRef IFuncsToLower)Lower all calls to ifuncs by replacing uses with indirect calls loaded out
of a global table initialized in a global constructor. This will introduce
one constructor function and adds it to llvm.global_ctors. The constructor
will call the resolver function once for each ifunc.
Leaves any unhandled constant initializer uses as-is.
If
is empty, all ifuncs in the module will be lowered.
If
is non-empty, only the selected ifuncs will be lowered.
The processed ifuncs without remaining users will be removed from the
module.
Defined at line 406 of file llvm/lib/Transforms/Utils/ModuleUtils.cpp
-
ConversionResult ConvertUTF8toUTF16 (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags)---------------------------------------------------------------------
Defined at line 567 of file llvm/lib/Support/ConvertUTF.cpp
-
PreservedAnalyses getLoopPassPreservedAnalyses ()Returns the minimum set of Analyses that all loop passes must preserve.
Defined at line 141 of file llvm/lib/Analysis/LoopAnalysisManager.cpp
-
void finalizeLLVMOptimizationRemarks (LLVMContext & Context)Finalize optimization remarks and deregister the RemarkStreamer from the
This must be called before closing the (file) stream that was used
to set up the remarks.
Defined at line 191 of file llvm/lib/IR/LLVMRemarkStreamer.cpp
-
void MergeBasicBlockIntoOnlyPred (BasicBlock * BB, DomTreeUpdater * DTU)BB is a block with one predecessor and its predecessor is known to have one
successor (BB!). Eliminate the edge between them, moving the instructions in
the predecessor into BB. This deletes the predecessor block.
Defined at line 761 of file llvm/lib/Transforms/Utils/Local.cpp
-
void DecodeVPERMVMask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a VPERM W/D/Q/PS/PD mask from a raw array of constants.
Defined at line 545 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
void initializeLazyValueInfoWrapperPassPass (PassRegistry & )Defined at line 59 of file llvm/lib/Analysis/LazyValueInfo.cpp
-
Value * simplifyICmpInst (CmpPredicate Pred, Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for an ICmpInst, fold the result or return null.
Defined at line 4098 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
FunctionPass * createInferAddressSpacesPass (unsigned int AddressSpace)===----------------------------------------------------------------------===//
InferAddressSpaces - Modify users of addrspacecast instructions with values
in the source address space if using the destination address space is slower
on the target. If AddressSpace is left to its default value, it will be
obtained from the TargetTransformInfo.
Defined at line 1462 of file llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
-
bool getIndexExpressionsFromGEP (ScalarEvolution & SE, const GetElementPtrInst * GEP, SmallVectorImpl<const SCEV *> & Subscripts, SmallVectorImpl<const SCEV *> & Sizes)Gathers the individual index expressions from a GEP instruction.
This function optimistically assumes the GEP references into a fixed size
array. If this is actually true, this function returns a list of array
subscript expressions in
and a list of SCEV expressions
describing the size of the individual array dimensions in
Both
lists have either equal length or the size list is one element shorter in
case there is no known size available for the outermost array dimension.
Returns true if successful and false otherwise.
Defined at line 813 of file llvm/lib/Analysis/Delinearization.cpp
-
RetainedKnowledge getKnowledgeForValue (const Value * V, ArrayRef<Attribute::AttrKind> AttrKinds, AssumptionCache & AC, function_ref<bool (RetainedKnowledge, Instruction *, const CallBase::BundleOpInfo *)> Filter)Return a valid Knowledge associated to the Value V if its Attribute kind is
in AttrKinds and it matches the Filter.
Defined at line 160 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
bool computeUnrollCount (Loop * L, const TargetTransformInfo & TTI, DominatorTree & DT, LoopInfo * LI, AssumptionCache * AC, ScalarEvolution & SE, const SmallPtrSetImpl<const Value *> & EphValues, OptimizationRemarkEmitter * ORE, unsigned int TripCount, unsigned int MaxTripCount, bool MaxOrZero, unsigned int TripMultiple, const UnrollCostEstimator & UCE, TargetTransformInfo::UnrollingPreferences & UP, TargetTransformInfo::PeelingPreferences & PP, bool & UseUpperBound)Returns true if unroll count was set explicitly.
Calculates unroll count and writes it to UP.Count.
Unless IgnoreUser is true, will also use metadata and command-line options
that are specific to to the LoopUnroll pass (which, for instance, are
irrelevant for the LoopUnrollAndJam pass).
FIXME: This function is used by LoopUnroll and LoopUnrollAndJam, but consumes
many LoopUnroll-specific options. The shared functionality should be
refactored into it own function.
Defined at line 924 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
-
Pass * createIVUsersPass ()Defined at line 51 of file llvm/lib/Analysis/IVUsers.cpp
-
void initializeLegacyLICMPassPass (PassRegistry & )Defined at line 383 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
FunctionPass * createX86CompressEVEXPass ()This pass compress instructions from EVEX space to legacy/VEX/EVEX space when
possible in order to reduce code size or facilitate HW decoding.
Defined at line 360 of file llvm/lib/Target/X86/X86CompressEVEX.cpp
-
RegAllocPriorityAdvisorAnalysisLegacy * createDevelopmentModePriorityAdvisorAnalysis ()Defined at line of file
-
void reportGISelFailure (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, const char * PassName, StringRef Msg, const MachineInstr & MI)Defined at line 266 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeLegalizerPass (PassRegistry & )Defined at line 79 of file llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
-
Value * emitMemChr (Value * Ptr, Value * Val, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the memchr function. This assumes that Ptr is a pointer,
Val is an 'int' value, and Len is an 'size_t' value.
Defined at line 1734 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool canConstantFoldCallTo (const CallBase * Call, const Function * F)canConstantFoldCallTo - Return true if its even possible to fold a call to
the specified function.
Defined at line 1602 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void DecodeVPERMV3Mask (ArrayRef<uint64_t> RawMask, const APInt & UndefElts, SmallVectorImpl<int> & ShuffleMask)Decode a VPERMT2 W/D/Q/PS/PD mask from a raw array of constants.
Defined at line 559 of file llvm/lib/Target/X86/MCTargetDesc/X86ShuffleDecode.cpp
-
bool isVectorIntrinsicWithOverloadTypeAtArg (Intrinsic::ID ID, int OpdIdx, const TargetTransformInfo * TTI)Identifies if the vector form of the intrinsic is overloaded on the type of
the operand at index
or on the return type if
is -1.
is used to consider target specific intrinsics, if no target specific
intrinsics will be considered then it is appropriate to pass in nullptr.
Defined at line 183 of file llvm/lib/Analysis/VectorUtils.cpp
-
void initializeGISelValueTrackingAnalysisLegacyPass (PassRegistry & )Defined at line 48 of file llvm/lib/CodeGen/GlobalISel/GISelValueTracking.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const FaultMapParser & )Defined at line 51 of file llvm/lib/Object/FaultMapParser.cpp
-
FunctionPass * createX86IndirectThunksPass ()This pass creates the thunks for the retpoline feature.
Defined at line 238 of file llvm/lib/Target/X86/X86IndirectThunks.cpp
-
Value * simplifyFCmpInst (CmpPredicate Predicate, Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q)Given operands for an FCmpInst, fold the result or return null.
Defined at line 4334 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
RegAllocPriorityAdvisorProvider * createReleaseModePriorityAdvisorProvider ()Defined at line 398 of file llvm/lib/CodeGen/MLRegAllocPriorityAdvisor.cpp
-
int downscaleWeights (ArrayRef Weights, optional KnownMaxCount)downscale the given weights preserving the ratio. If the maximum value is
not already known and not provided via
Parameters
KnownMaxCount , it will be obtained fromDefined at line 328 of file llvm/lib/IR/ProfDataUtils.cpp
-
void scavengeFrameVirtualRegs (MachineFunction & MF, RegScavenger & RS)Replaces all frame index virtual registers with physical registers. Uses the
register scavenger to find an appropriate register to use.
Defined at line 462 of file llvm/lib/CodeGen/RegisterScavenging.cpp
-
void initializeLiveDebugValuesLegacyPass (PassRegistry & )Defined at line 100 of file llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
-
bool isKnownInversion (const Value * X, const Value * Y)Return true iff:
1. X is poison implies Y is poison.
2. X is true implies Y is false.
3. X is false implies Y is true.
Otherwise, return false.
Defined at line 8760 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeLiveDebugVariablesWrapperLegacyPass (PassRegistry & )Defined at line 84 of file llvm/lib/CodeGen/LiveDebugVariables.cpp
-
TimeTraceProfilerEntry * timeTraceAsyncProfilerBegin (StringRef Name, StringRef Detail)Manually begin a time section, with the given
and
This starts Async Events having
as a category which is shown
separately from other traces. See
https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview#heading=h.jh64i9l3vwa1
for more details.
Defined at line 476 of file llvm/lib/Support/TimeProfiler.cpp
-
bool TryToSimplifyUncondBranchFromEmptyBlock (BasicBlock * BB, DomTreeUpdater * DTU)BB is known to contain an unconditional branch, and contains no instructions
other than PHI nodes, potential debug intrinsics and the branch. If
possible, eliminate BB by rewriting all the predecessors to branch to the
successor block and return true. If we can't transform, return false.
Defined at line 1140 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool sinkRegionForLoopNest (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * )Call sinkRegion on loops contained within the specified loop
in order from innermost to outermost.
Defined at line 626 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
ModulePass * createGlobalsAAWrapperPass ()===--------------------------------------------------------------------===//
createGlobalsAAWrapperPass - This pass provides alias and mod/ref info for
global values that do not have their addresses taken.
Defined at line 1047 of file llvm/lib/Analysis/GlobalsModRef.cpp
-
void initializeLiveIntervalsWrapperPassPass (PassRegistry & )Defined at line 85 of file llvm/lib/CodeGen/LiveIntervals.cpp
-
template <typename... HandlerTs>Error handleErrors (Error E, HandlerTs &&... Handlers)Pass the ErrorInfo(s) contained in E to their respective handlers. Any
unhandled errors (or Errors returned by handlers) are re-concatenated and
returned.
Because this function returns an error, its result must also be checked
or returned. If you intend to handle all errors use handleAllErrors
(which returns void, and will abort() on unhandled errors) instead.
Defined at line 967 of file llvm/include/llvm/Support/Error.h
-
FunctionPass * createX86ReturnThunksPass ()This pass replaces ret instructions with jmp's to __x86_return thunk.
Defined at line 99 of file llvm/lib/Target/X86/X86ReturnThunks.cpp
-
RegAllocPriorityAdvisorProvider * createDevelopmentModePriorityAdvisorProvider (LLVMContext & Ctx)Defined at line of file
-
Value * emitMemRChr (Value * Ptr, Value * Val, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the memrchr function, analogously to emitMemChr.
Defined at line 1744 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Constant * ConstantFoldCall (const CallBase * Call, Function * F, ArrayRef Operands, const TargetLibraryInfo * TLI, bool AllowNonDeterministic)ConstantFoldCall - Attempt to constant fold a call to the specified function
with the specified arguments, returning null if unsuccessful.
Defined at line 4521 of file llvm/lib/Analysis/ConstantFolding.cpp
-
void initializeLiveRangeShrinkPass (PassRegistry & )Defined at line 67 of file llvm/lib/CodeGen/LiveRangeShrink.cpp
-
Value * simplifySelectInst (Value * Cond, Value * TrueVal, Value * FalseVal, const SimplifyQuery & Q)Given operands for a SelectInst, fold the result or return null.
Defined at line 5133 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void reportGISelWarning (MachineFunction & MF, MachineOptimizationRemarkEmitter & MORE, MachineOptimizationRemarkMissed & R)Report an ISel warning as a missed optimization remark to the LLVMContext's
diagnostic stream.
Defined at line 253 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ConversionResult ConvertUTF8toUTF32Partial (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)Convert a partial UTF8 sequence to UTF32. If the sequence ends in an
incomplete code unit sequence, returns
Defined at line 727 of file llvm/lib/Support/ConvertUTF.cpp
-
bool needsParamAccessSummary (const Module & M)Defined at line 1120 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp
-
FunctionPass * createPartiallyInlineLibCallsPass ()===----------------------------------------------------------------------===//
PartiallyInlineLibCalls - Tries to inline the fast path of library
calls such as sqrt.
Defined at line 234 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
-
bool operator== (const DbgValueLoc & , const DbgValueLoc & )Compare two DbgValueLocs for equality.
Defined at line 274 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
-
bool isKnownNonNegative (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Returns true if the give value is known to be non-negative.
Defined at line 281 of file llvm/lib/Analysis/ValueTracking.cpp
-
void embedBitcodeInModule (Module & M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedCmdline, const std::vector<uint8_t> & CmdArgs)If EmbedBitcode is set, save a copy of the llvm IR as data in the
__LLVM,__bitcode section (.llvmbc on non-MacOS).
If available, pass the serialized module via the Buf parameter. If not,
pass an empty (default-initialized) MemoryBufferRef, and the serialization
will be handled by this API. The same behavior happens if the provided Buf
is not bitcode (i.e. if it's invalid data or even textual LLVM assembly).
If EmbedCmdline is set, the command line is also exported in
the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs
were empty.
Defined at line 5874 of file llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
-
void embedBitcodeInModule (Module & M, MemoryBufferRef Buf, bool EmbedBitcode, bool EmbedCmdline, const int & CmdArgs)If EmbedBitcode is set, save a copy of the llvm IR as data in the
__LLVM,__bitcode section (.llvmbc on non-MacOS).
If available, pass the serialized module via the Buf parameter. If not,
pass an empty (default-initialized) MemoryBufferRef, and the serialization
will be handled by this API. The same behavior happens if the provided Buf
is not bitcode (i.e. if it's invalid data or even textual LLVM assembly).
If EmbedCmdline is set, the command line is also exported in
the corresponding section (__LLVM,_cmdline / .llvmcmd) - even if CmdArgs
were empty.
Defined at line of file
-
optional canParallelizeReductionWhenUnrolling (PHINode & Phi, Loop * L, ScalarEvolution * SE)Defined at line 1249 of file llvm/lib/Transforms/Utils/LoopUnroll.cpp
-
template <typename HandlerT>void visitErrors (const Error & E, HandlerT H)Visit all the ErrorInfo(s) contained in E by passing them to the respective
handler, without consuming the error.
Defined at line 1002 of file llvm/include/llvm/Support/Error.h
-
bool operator< (const DbgValueLoc & , const DbgValueLoc & )Compare two fragments based on their offset.
Defined at line 280 of file llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h
-
void timeTraceAddInstantEvent (StringRef Name, llvm::function_ref<std::string ()> Detail)Mark an instant event.
Defined at line 485 of file llvm/lib/Support/TimeProfiler.cpp
-
RetainedKnowledge getKnowledgeValidInContext (const Value * V, ArrayRef<Attribute::AttrKind> AttrKinds, AssumptionCache & AC, const Instruction * CtxI, const DominatorTree * DT)Return a valid Knowledge associated to the Value V if its Attribute kind is
in AttrKinds and the knowledge is suitable to be used in the context of
CtxI.
Defined at line 187 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
void generateParamAccessSummary (ModuleSummaryIndex & Index)Defined at line 1129 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp
-
void initializeLiveVariablesWrapperPassPass (PassRegistry & )Defined at line 64 of file llvm/lib/CodeGen/LiveVariables.cpp
-
FunctionPass * createX86InsertX87waitPass ()This pass insert wait instruction after X87 instructions which could raise
fp exceptions when strict-fp enabled.
Defined at line 56 of file llvm/lib/Target/X86/X86InsertWait.cpp
-
bool isVectorIntrinsicWithStructReturnOverloadAtField (Intrinsic::ID ID, int RetIdx, const TargetTransformInfo * TTI)Identifies if the vector form of the intrinsic that returns a struct is
overloaded at the struct element index
///
is used to
consider target specific intrinsics, if no target specific intrinsics
will be considered then it is appropriate to pass in nullptr.
Defined at line 220 of file llvm/lib/Analysis/VectorUtils.cpp
-
void initializeLoadStoreOptPass (PassRegistry & )Defined at line 53 of file llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
-
Constant * ConstantFoldBinaryIntrinsic (Intrinsic::ID ID, Constant * LHS, Constant * RHS, Type * Ty, Instruction * FMFSource)Defined at line 4510 of file llvm/lib/Analysis/ConstantFolding.cpp
-
Value * simplifyGEPInst (Type * SrcTy, Value * Ptr, ArrayRef Indices, GEPNoWrapFlags NW, const SimplifyQuery & Q)Given operands for a GetElementPtrInst, fold the result or return null.
Defined at line 5271 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Value * emitMemCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the memcmp function.
Defined at line 1754 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void reportVectorizationFailure (StringRef DebugMsg, StringRef OREMsg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I)Reports a vectorization failure: print
for debugging
purposes along with the corresponding optimization remark
If
is passed, it is an instruction that prevents vectorization.
Otherwise, the loop
is used for the location of the remark.
Defined at line 790 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-
void initializeLoadStoreVectorizerLegacyPassPass (PassRegistry & )Defined at line 416 of file llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
-
bool mayContainIrreducibleControl (const Function & F, const LoopInfo * LI)Defined at line 392 of file llvm/lib/Analysis/MustExecute.cpp
-
unsigned int getInverseGMinMaxOpcode (unsigned int MinMaxOpc)Returns the inverse opcode of
which is a generic min/max
opcode like G_SMIN.
Defined at line 280 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeLocalStackSlotPassPass (PassRegistry & )Defined at line 128 of file llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
-
bool isKnownPositive (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Returns true if the given value is known be positive (i.e. non-negative
and non-zero).
Defined at line 286 of file llvm/lib/Analysis/ValueTracking.cpp
-
void timeTraceProfilerEnd ()Manually end the last time section.
Defined at line 491 of file llvm/lib/Support/TimeProfiler.cpp
-
bool EliminateDuplicatePHINodes (BasicBlock * BB)Check for and eliminate duplicate PHI nodes in this block. This doesn't try
to be clever about PHI nodes which differ only in the order of the incoming
values, but instcombine orders them so it usually won't matter.
This overload removes the duplicate PHI nodes directly.
Defined at line 1509 of file llvm/lib/Transforms/Utils/Local.cpp
-
ImmutablePass * createBasicBlockSectionsProfileReaderWrapperPass (const MemoryBuffer * Buf)Creates a BasicBlockSectionsProfileReader pass to parse the basic block
sections profile.
is a memory buffer that contains the list of
functions and basic block ids to selectively enable basic block sections.
Defined at line 528 of file llvm/lib/CodeGen/BasicBlockSectionsProfileReader.cpp
-
FunctionPass * createSeparateConstOffsetFromGEPPass (bool LowerGEP)===----------------------------------------------------------------------===//
SeparateConstOffsetFromGEP - Split GEPs for better CSE
Defined at line 477 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
-
void initializeLoopDataPrefetchLegacyPassPass (PassRegistry & )Defined at line 148 of file llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
-
void timeTraceProfilerEnd (TimeTraceProfilerEntry * E)Defined at line 496 of file llvm/lib/Support/TimeProfiler.cpp
-
void initializeLoopExtractorLegacyPassPass (PassRegistry & )Defined at line 92 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp
-
LLVMErrorRef wrap (Error )Conversion from Error to LLVMErrorRef for C error bindings.
Defined at line 1490 of file llvm/include/llvm/Support/Error.h
-
RetainedKnowledge getKnowledgeFromBundle (AssumeInst & Assume, const CallBase::BundleOpInfo & BOI)This extracts the Knowledge from an element of an operand bundle.
This is mostly for use in the assume builder.
Defined at line 99 of file llvm/lib/Analysis/AssumeBundleQueries.cpp
-
Intrinsic::ID getVectorIntrinsicIDForCall (const CallInst * CI, const TargetLibraryInfo * TLI)Returns intrinsic ID for call.
For the input call instruction it finds mapping intrinsic and returns
its ID, in case it does not found it return not_intrinsic.
Defined at line 237 of file llvm/lib/Analysis/VectorUtils.cpp
-
std::optional<APInt> getIConstantVRegVal (Register VReg, const MachineRegisterInfo & MRI)If
is defined by a G_CONSTANT, return the corresponding value.
Defined at line 295 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Value * simplifyInsertValueInst (Value * Agg, Value * Val, ArrayRef Idxs, const SimplifyQuery & Q)Given operands for an InsertValueInst, fold the result or return null.
Defined at line 5310 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Value * emitBCmp (Value * Ptr1, Value * Ptr2, Value * Len, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the bcmp function.
Defined at line 1764 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void initializeLoopInfoWrapperPassPass (PassRegistry & )Defined at line 1219 of file llvm/lib/Analysis/LoopInfo.cpp
-
ConversionResult ConvertUTF8toUTF32 (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)Convert a partial UTF8 sequence to UTF32. If the sequence ends in an
incomplete code unit sequence, returns
Defined at line 736 of file llvm/lib/Support/ConvertUTF.cpp
-
void initializeLoopPassPass (PassRegistry & )Manually defined generic "LoopPass" dependency initialization. This is used
to initialize the exact set of passes from above in
It can be used within a loop pass's initialization
with:
INITIALIZE_PASS_DEPENDENCY(LoopPass)
As-if "LoopPass" were a pass.
Defined at line 190 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MachineValueTypeSet & T)Defined at line 249 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
-
Constant * ConstantFoldLoadThroughBitcast (Constant * C, Type * DestTy, const DataLayout & DL)ConstantFoldLoadThroughBitcast - try to cast constant to destination type
returning null if unsuccessful. Can cast pointer to pointer or pointer to
integer and vice versa if their sizes are equal.
Defined at line 358 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool isKnownNegative (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Returns true if the given value is known be negative (i.e. non-positive
and non-zero).
Defined at line 298 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeLoopSimplifyPass (PassRegistry & )Defined at line 780 of file llvm/lib/Transforms/Utils/LoopSimplify.cpp
-
int getBitcodeModuleList (MemoryBufferRef Buffer)Returns a list of modules in the specified bitcode buffer.
Defined at line 8396 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
bool getObjectSize (const Value * Ptr, uint64_t & Size, const DataLayout & DL, const TargetLibraryInfo * TLI, ObjectSizeOpts Opts)Compute the size of the object pointed by Ptr. Returns true and the
object size in Size if successful, and false otherwise.
If RoundToAlign is true, then Size is rounded up to the alignment of
allocas, byval arguments, and global variables.
Defined at line 581 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
void EnableStatistics (bool DoPrintOnExit)Enable the collection and printing of statistics.
Defined at line 134 of file llvm/lib/Support/Statistic.cpp
-
unsigned int getInterleaveIntrinsicFactor (Intrinsic::ID ID)Returns the corresponding factor of llvm.vector.interleaveN intrinsics.
Defined at line 251 of file llvm/lib/Analysis/VectorUtils.cpp
-
void initializeLoopStrengthReducePass (PassRegistry & )Defined at line 7159 of file llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
-
std::optional<int64_t> getIConstantVRegSExtVal (Register VReg, const MachineRegisterInfo & MRI)If
is defined by a G_CONSTANT fits in int64_t returns it.
Defined at line 314 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
DynamicAPInt abs (const DynamicAPInt & X)Defined at line 367 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void initializeLoopTermFoldPass (PassRegistry & )Defined at line 372 of file llvm/lib/Transforms/Scalar/LoopTermFold.cpp
-
Value * simplifyInsertElementInst (Value * Vec, Value * Elt, Value * Idx, const SimplifyQuery & Q)Given operands for an InsertElement, fold the result or return null.
Defined at line 5316 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Value * emitMemCCpy (Value * Ptr1, Value * Ptr2, Value * Val, Value * Len, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the memccpy function.
Defined at line 1774 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool EliminateDuplicatePHINodes (BasicBlock * BB, SmallPtrSetImpl<PHINode *> & ToRemove)Check for and eliminate duplicate PHI nodes in this block. This doesn't try
to be clever about PHI nodes which differ only in the order of the incoming
values, but instcombine orders them so it usually won't matter.
This overload collects the PHI nodes to be removed into the ToRemove set.
Defined at line 1498 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * findAvailablePtrLoadStore (const MemoryLocation & Loc, Type * AccessTy, bool AtLeastAtomic, BasicBlock * ScanBB, int & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)Scan backwards to see if we have the value of the given pointer available
locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call
this function, if ScanFrom points at the beginning of the block, it's safe
to continue scanning the predecessors.
Parameters
Loc The location we want the load and store to originate from.AccessTy The access type of the pointer.AtLeastAtomic Are we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store.ScanBB The basic block to scan.ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.AA Optional pointer to alias analysis, to make the scan more precise.IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.Defined at line of file
-
Value * findAvailablePtrLoadStore (const MemoryLocation & Loc, Type * AccessTy, bool AtLeastAtomic, BasicBlock * ScanBB, BasicBlock::iterator & ScanFrom, unsigned int MaxInstsToScan, BatchAAResults * AA, bool * IsLoadCSE, unsigned int * NumScanedInst)Scan backwards to see if we have the value of the given pointer available
locally within a small number of instructions.
You can use this function to scan across multiple blocks: after you call
this function, if ScanFrom points at the beginning of the block, it's safe
to continue scanning the predecessors.
Parameters
Loc The location we want the load and store to originate from.AccessTy The access type of the pointer.AtLeastAtomic Are we looking for at-least an atomic load/store ? In case it is false, we can return an atomic or non-atomic load or store. In case it is true, we need to return an atomic load or store.ScanBB The basic block to scan.ScanFrom [in,out] The location to start scanning from. When this function returns, it points at the last instruction scanned.MaxInstsToScan The maximum number of instructions to scan. If this is zero, the whole block will be scanned.AA Optional pointer to alias analysis, to make the scan more precise.IsLoadCSE [out] Whether the returned value is a load from the same location in memory, as opposed to the value operand of a store.Defined at line 675 of file llvm/lib/Analysis/Loads.cpp
-
DynamicAPInt ceilDiv (const DynamicAPInt & LHS, const DynamicAPInt & RHS)Division overflows only occur when negating the minimal possible value.
Defined at line 371 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void initializeLoopUnrollPass (PassRegistry & )Defined at line 1491 of file llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
-
FunctionPass * createSpeculativeExecutionPass ()===----------------------------------------------------------------------===//
SpeculativeExecution - Aggressively hoist instructions to enable
speculative execution on targets where branches are expensive.
Defined at line 330 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
-
ValueTypeByHwMode getValueTypeByHwMode (const Record * Rec, const CodeGenHwModes & CGH)Defined at line 111 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp
-
bool hoistRegion (DomTreeNode * , AAResults * , LoopInfo * , DominatorTree * , AssumptionCache * , TargetLibraryInfo * , Loop * , MemorySSAUpdater & , ScalarEvolution * , ICFLoopSafetyInfo * , SinkAndHoistLICMFlags & , OptimizationRemarkEmitter * , bool , bool AllowSpeculation)Walk the specified region of the CFG (defined by all blocks
dominated by the specified block, and that are in the current loop) in depth
first order w.r.t the DominatorTree. This allows us to visit definitions
before uses, allowing us to hoist a loop body in one pass without iteration.
Takes DomTreeNode, AAResults, LoopInfo, DominatorTree,
TargetLibraryInfo, Loop, AliasSet information for all
instructions of the loop and loop safety information as arguments.
Diagnostics is emitted via
It returns changed status.
is whether values should be hoisted even if they are not
guaranteed to execute in the loop, but are safe to speculatively execute.
Defined at line 889 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
bool AreStatisticsEnabled ()Check if statistics are enabled.
Defined at line 139 of file llvm/lib/Support/Statistic.cpp
-
unsigned int getDeinterleaveIntrinsicFactor (Intrinsic::ID ID)Returns the corresponding factor of llvm.vector.deinterleaveN intrinsics.
Defined at line 272 of file llvm/lib/Analysis/VectorUtils.cpp
-
void initializeLowerAtomicLegacyPassPass (PassRegistry & )Defined at line 95 of file llvm/lib/Transforms/Scalar/LowerAtomicPass.cpp
-
DynamicAPInt floorDiv (const DynamicAPInt & LHS, const DynamicAPInt & RHS)Defined at line 382 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
UseCaptureInfo DetermineUseCaptureKind (const Use & U, const Value * Base)Determine what kind of capture behaviour
may exhibit.
The returned UseCaptureInfo contains the components captured directly
by the use (UseCC) and the components captured through the return value
of the user (ResultCC).
is the starting value of the capture analysis, which is
relevant for address_is_null captures.
Defined at line 267 of file llvm/lib/Analysis/CaptureTracking.cpp
-
bool isMathLibCallNoop (const CallBase * Call, const TargetLibraryInfo * TLI)Check whether the given call has no side-effects.
Specifically checks for math routimes which sometimes set errno.
Defined at line 4565 of file llvm/lib/Analysis/ConstantFolding.cpp
-
bool isKnownNonEqual (const Value * V1, const Value * V2, const SimplifyQuery & SQ, unsigned int Depth)Return true if the given values are known to be non-equal when defined.
Supports scalar integer types only.
Defined at line 307 of file llvm/lib/Analysis/ValueTracking.cpp
-
ConversionResult ConvertUTF16toUTF8 (const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags)Defined at line 263 of file llvm/lib/Support/ConvertUTF.cpp
-
void initializeLowerEmuTLSPass (PassRegistry & )Defined at line 80 of file llvm/lib/CodeGen/LowerEmuTLS.cpp
-
FunctionPass * createX86PartialReductionLegacyPass ()Defined at line 65 of file llvm/lib/Target/X86/X86PartialReduction.cpp
-
const APInt & getIConstantFromReg (Register VReg, const MachineRegisterInfo & MRI)is defined by a G_CONSTANT, return the corresponding value.
Defined at line 306 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ErrorOr<std::string> FindProgramByName (const std::string & ExeName, const char * Argv0, void * MainAddr)Find the first executable file
, either in the user's PATH or,
failing that, in the same directory as argv[0]. This allows us to find
another LLVM tool if it is built in the same directory. If no executable is
found, an error is returned.
Defined at line 198 of file llvm/tools/bugpoint/ToolRunner.cpp
-
void initializeLowerGlobalDtorsLegacyPassPass (PassRegistry & )Defined at line 56 of file llvm/lib/Transforms/Utils/LowerGlobalDtors.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const ValueTypeByHwMode & T)Defined at line 245 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp
-
Value * simplifyExtractValueInst (Value * Agg, ArrayRef Idxs, const SimplifyQuery & Q)Given operands for an ExtractValueInst, fold the result or return null.
Defined at line 5393 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Constant * parseConstantValue (StringRef Asm, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)Parse a type and a constant value in the given string.
The constant value can be any LLVM constant, including a constant
expression.
Parameters
Slots The optional slot mapping that will restore the parsing state of the module.Returns
null on error.
Defined at line 195 of file llvm/lib/AsmParser/Parser.cpp
-
Value * emitSNPrintf (Value * Dest, Value * Size, Value * Fmt, ArrayRef Args, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the snprintf function.
Defined at line 1784 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void CloneFunctionInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, CloneFunctionChangeType Changes, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)Clone OldFunc into NewFunc, transforming the old arguments into references
to VMap values. Note that if NewFunc already has basic blocks, the ones
cloned into it will be added to the end of the function. This function
fills in a list of return instructions, and can optionally remap types
and/or append the specified suffix to all values cloned.
If
is
VMap is
required to contain no non-identity GlobalValue mappings. Otherwise,
referenced metadata will be cloned.
If
is less than
indicating cloning into the same module (even if it's LocalChangesOnly), if
debug info metadata transitively references a
it will be
cloned, effectively upgrading
to GlobalChanges while suppressing
cloning of types and compile units.
If
is
the new
module's
will get updated with any newly created compile
units. (
leaves that work for the
caller.)
FIXME: Consider simplifying this function by splitting out
and expecting / updating callers to call it
first when / how it's needed.
Defined at line 278 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
DynamicAPInt gcd (const DynamicAPInt & A, const DynamicAPInt & B)The operands must be non-negative for gcd.
Defined at line 403 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
unique_ptr CreateInfoOutputFile ()Return a stream to print our output on.
Defined at line 66 of file llvm/lib/Support/Timer.cpp
-
void initializeLowerIntrinsicsPass (PassRegistry & )-----------------------------------------------------------------------------
Defined at line 103 of file llvm/lib/CodeGen/GCRootLowering.cpp
-
FunctionPass * createSpeculativeExecutionIfHasBranchDivergencePass ()Same as createSpeculativeExecutionPass, but does nothing unless
TargetTransformInfo::hasBranchDivergence() is true.
Defined at line 334 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
-
Constant * ReadByteArrayFromGlobal (const GlobalVariable * GV, uint64_t Offset)If GV is a constant with an initializer read its representation starting
at Offset and return it as a constant array of unsigned char. Otherwise
return null.
Defined at line 658 of file llvm/lib/Analysis/ConstantFolding.cpp
-
std::optional<TypeSize> getBaseObjectSize (const Value * Ptr, const DataLayout & DL, const TargetLibraryInfo * TLI, ObjectSizeOpts Opts)Like getObjectSize(), but only returns the size of base objects (like
allocas, global variables and allocator calls) and std::nullopt otherwise.
Requires ExactSizeFromOffset mode.
Defined at line 592 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
int getLazyBitcodeModule (MemoryBufferRef Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)Read the header of the specified bitcode buffer and prepare for lazy
deserialization of function bodies. If ShouldLazyLoadMetadata is true,
lazily load metadata as well. If IsImporting is true, this module is
being parsed for ThinLTO importing into another module.
Defined at line 8708 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
DynamicAPInt lcm (const DynamicAPInt & A, const DynamicAPInt & B)Returns the least common multiple of A and B.
Defined at line 413 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
FunctionPass * createBasicAAWrapperPass ()Defined at line 2038 of file llvm/lib/Analysis/BasicAliasAnalysis.cpp
-
VectorType * getDeinterleavedVectorType (IntrinsicInst * DI)Given a deinterleaveN intrinsic, return the (narrow) vector type of each
factor.
Defined at line 293 of file llvm/lib/Analysis/VectorUtils.cpp
-
FunctionPass * createX86WinEHUnwindV2Pass ()// Analyzes and emits pseudos to support Win x64 Unwind V2.
Defined at line 80 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp
-
DynamicAPInt mod (const DynamicAPInt & LHS, const DynamicAPInt & RHS)The RHS is always expected to be positive, and the result
is always non-negative.
Defined at line 395 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
raw_ostream & operator<< (raw_ostream & OS, const ILPValue & Val)Defined at line 1555 of file llvm/lib/CodeGen/ScheduleDAGInstrs.cpp
-
void initializeLowerSwitchLegacyPassPass (PassRegistry & )Defined at line 588 of file llvm/lib/Transforms/Utils/LowerSwitch.cpp
-
Value * simplifyExtractElementInst (Value * Vec, Value * Idx, const SimplifyQuery & Q)Given operands for an ExtractElementInst, fold the result or return null.
Defined at line 5445 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
ConversionResult ConvertUTF32toUTF8 (const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF8 ** targetStart, UTF8 * targetEnd, ConversionFlags flags)---------------------------------------------------------------------
Defined at line 333 of file llvm/lib/Support/ConvertUTF.cpp
-
void initializeMIRCanonicalizerPass (PassRegistry & )Defined at line 73 of file llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
-
void initializeMIRNamerPass (PassRegistry & )Defined at line 64 of file llvm/lib/CodeGen/MIRNamerPass.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const VPRecipeBase & R)Defined at line 73 of file llvm/lib/Transforms/Vectorize/VPlan.cpp
-
void CloneFunctionAttributesInto (Function * NewFunc, const Function * OldFunc, int & VMap, bool ModuleLevelChanges, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)Clone OldFunc's attributes into NewFunc, transforming values based on the
mappings in VMap.
Defined at line of file
-
void initializeMachineBranchProbabilityInfoWrapperPassPass (PassRegistry & )Defined at line 21 of file llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
-
void initializeMachineCycleInfoWrapperPassPass (PassRegistry & )Defined at line 31 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp
-
void initializeMachineDominanceFrontierPass (PassRegistry & )Defined at line 30 of file llvm/lib/CodeGen/MachineDominanceFrontier.cpp
-
void initializeMachineFunctionPrinterPassPass (PassRegistry & )Defined at line 60 of file llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
-
void CloneFunctionMetadataInto (Function & NewFunc, const Function & OldFunc, int & VMap, RemapFlags RemapFlag, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Clone OldFunc's metadata into NewFunc.
The caller is expected to populate
beforehand and set an appropriate
Subprograms/CUs/types that were already mapped to themselves
won't be duplicated.
NOTE: This function doesn't clone !llvm.dbg.cu when cloning into a different
module. Use CloneFunctionInto for that behavior.
Defined at line of file
-
void initializeMachineLoopInfoWrapperPassPass (PassRegistry & )Defined at line 60 of file llvm/lib/CodeGen/MachineLoopInfo.cpp
-
void __morestack ()Defined at line of file
-
AllocaInst * DemoteRegToStack (Instruction & X, bool VolatileLoads, optional AllocaPoint)DemoteRegToStack - This function takes a virtual register computed by an
Instruction and replaces it with a slot in the stack frame, allocated via
alloca. This allows the CFG to be changed around without fear of
invalidating the SSA information for the value. It returns the pointer to
the alloca inserted to create a stack slot for I.
Defined at line 23 of file llvm/lib/Transforms/Utils/DemoteRegToStack.cpp
-
AllocaInst * DemoteRegToStack (Instruction & X, bool VolatileLoads, int AllocaPoint)This function takes a virtual register computed by an Instruction and
replaces it with a slot in the stack frame, allocated via alloca.
This allows the CFG to be changed around without fear of invalidating the
SSA information for the value. It returns the pointer to the alloca inserted
to create a stack slot for X.
Defined at line of file
-
std::optional<llvm::StringMap<bool>> getCPUDefaultTargetFeatures (StringRef CPU, ArrayRef<BasicSubtargetSubTypeKV> ProcDesc, ArrayRef<BasicSubtargetFeatureKV> ProcFeatures)Defined at line 44 of file llvm/lib/TargetParser/TargetParser.cpp
-
void CloneFunctionBodyInto (Function & NewFunc, const Function & OldFunc, int & VMap, RemapFlags RemapFlag, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Clone OldFunc's body into NewFunc.
Defined at line of file
-
void initializeMachinePostDominatorTreeWrapperPassPass (PassRegistry & )declare initializeMachinePostDominatorTreePass
Defined at line 65 of file llvm/lib/CodeGen/MachinePostDominators.cpp
-
void initializeMachineSanitizerBinaryMetadataLegacyPass (PassRegistry & )Defined at line 46 of file llvm/lib/CodeGen/SanitizerBinaryMetadata.cpp
-
AllocaInst * DemotePHIToStack (PHINode * P, int AllocaPoint)This function takes a virtual register computed by a phi node and replaces
it with a slot in the stack frame, allocated via alloca. The phi node is
deleted and it returns the pointer to the alloca inserted.
Defined at line of file
-
hash_code hash_value (const DynamicAPInt & x)Redeclarations of friend declaration above to
make it discoverable by lookups.
Defined at line 15 of file llvm/lib/Support/DynamicAPInt.cpp
-
FunctionPass * createX86ArgumentStackSlotPass ()Defined at line 59 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp
-
void dumpCOFFImportFile (const object::COFFImportFile * File, ScopedPrinter & Writer)Defined at line 23 of file llvm/tools/llvm-readobj/COFFImportDumper.cpp
-
void CloneAndPruneIntoFromInst (Function * NewFunc, const Function * OldFunc, const Instruction * StartingInst, int & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)Defined at line of file
-
FunctionPass * createX86SuppressAPXForRelocationPass ()Defined at line 62 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp
-
void initializeMachineTraceMetricsWrapperPassPass (PassRegistry & )Defined at line 61 of file llvm/lib/CodeGen/MachineTraceMetrics.cpp
-
void initializeX86ArgumentStackSlotPassPass (PassRegistry & )Defined at line 56 of file llvm/lib/Target/X86/X86ArgumentStackSlotRebase.cpp
-
bool ConvertUTF8toWide (unsigned int WideCharWidth, StringRef Source, char *& ResultPtr, const UTF8 *& ErrorPtr)Convert an UTF8 StringRef to UTF8, UTF16, or UTF32 depending on
WideCharWidth. The converted data is written to ResultPtr, which needs to
point to at least WideCharWidth * (Source.Size() + 1) bytes. On success,
ResultPtr will point one after the end of the copied string. On failure,
ResultPtr will not be changed, and ErrorPtr will be set to the location of
the first character which could not be converted.
Returns
true on success.
Defined at line 18 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
void initializeMemorySSAWrapperPassPass (PassRegistry & )Defined at line 72 of file llvm/lib/Analysis/MemorySSA.cpp
-
void initializeX86FixupInstTuningPassPass (PassRegistry & )Defined at line 64 of file llvm/lib/Target/X86/X86FixupInstTuning.cpp
-
void initializeX86FixupVectorConstantsPassPass (PassRegistry & )Defined at line 60 of file llvm/lib/Target/X86/X86FixupVectorConstants.cpp
-
void initializeX86AvoidTrailingCallLegacyPassPass (PassRegistry & )Defined at line 70 of file llvm/lib/Target/X86/X86AvoidTrailingCall.cpp
-
void initializeOptimizePHIsLegacyPass (PassRegistry & )Defined at line 78 of file llvm/lib/CodeGen/OptimizePHIs.cpp
-
void CloneAndPruneFunctionInto (Function * NewFunc, const Function * OldFunc, int & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)This works exactly like CloneFunctionInto,
except that it does some simple constant prop and DCE on the fly. The
effect of this is to copy significantly less code in cases where (for
example) a function call with constant arguments is inlined, and those
constant arguments cause a significant amount of code in the callee to be
dead. Since this doesn't produce an exactly copy of the input, it can't be
used for things like CloneFunction or CloneModule.
If ModuleLevelChanges is false, VMap contains no non-identity GlobalValue
mappings.
Defined at line of file
-
StatepointDirectives parseStatepointDirectivesFromAttrs (AttributeList AS)Parse out statepoint directives from the function attributes present in
Defined at line 23 of file llvm/lib/IR/Statepoint.cpp
-
bool isStatepointDirectiveAttr (Attribute Attr)Return
if the
is an attribute that is a statepoint
directive.
Defined at line 18 of file llvm/lib/IR/Statepoint.cpp
-
void initializeX86FastTileConfigPass (PassRegistry & )Defined at line 77 of file llvm/lib/Target/X86/X86FastTileConfig.cpp
-
void initializePhysicalRegisterUsageInfoWrapperLegacyPass (PassRegistry & )Defined at line 37 of file llvm/lib/CodeGen/RegisterUsageInfo.cpp
-
unsigned int getULEB128Size (uint64_t Value)Utility function to get the size of the ULEB128-encoded value.
Defined at line 19 of file llvm/lib/Support/LEB128.cpp
-
void initializeX86FixupSetCCPassPass (PassRegistry & )Defined at line 63 of file llvm/lib/Target/X86/X86FixupSetCC.cpp
-
unsigned int getSLEB128Size (int64_t Value)Utility function to get the size of the SLEB128-encoded value.
Defined at line 29 of file llvm/lib/Support/LEB128.cpp
-
void initializePostDominatorTreeWrapperPassPass (PassRegistry & )Defined at line 40 of file llvm/lib/Analysis/PostDominators.cpp
-
void initializeX86LowerTileCopyPass (PassRegistry & )Defined at line 60 of file llvm/lib/Target/X86/X86LowerTileCopy.cpp
-
void initializeX86PartialReductionLegacyPass (PassRegistry & )Defined at line 71 of file llvm/lib/Target/X86/X86PartialReduction.cpp
-
void initializePostRAHazardRecognizerLegacyPass (PassRegistry & )Defined at line 69 of file llvm/lib/CodeGen/PostRAHazardRecognizer.cpp
-
void initializeX86SuppressAPXForRelocationPassPass (PassRegistry & )Defined at line 59 of file llvm/lib/Target/X86/X86SuppressAPXForReloc.cpp
-
void initializeProcessImplicitDefsLegacyPass (PassRegistry & )Defined at line 65 of file llvm/lib/CodeGen/ProcessImplicitDefs.cpp
-
bool ConvertCodePointToUTF8 (unsigned int Source, char *& ResultPtr)Convert an Unicode code point to UTF8 sequence.
Parameters
Source a Unicode code point.ResultPtr [in,out] pointer to the output buffer, needs to be at least bytes. On success is updated one past end of the converted sequence.Defined at line 64 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
basic_string getPassesString (const std::vector<std::string> & Passes)getPassesString - Turn a list of passes into a string which indicates the
command line options that must be passed to add the passes.
Defined at line 61 of file llvm/tools/bugpoint/BugDriver.cpp
-
void initializeRABasicPass (PassRegistry & )Defined at line 59 of file llvm/lib/CodeGen/RegAllocBasic.cpp
-
FPClassTest fneg (FPClassTest Mask)Return the test mask which returns true if the value's sign bit is flipped.
Defined at line 14 of file llvm/lib/Support/FloatingPointMode.cpp
-
void initializeReachingDefInfoWrapperPassPass (PassRegistry & )Defined at line 45 of file llvm/lib/CodeGen/ReachingDefAnalysis.cpp
-
void initializeRegAllocEvictionAdvisorAnalysisLegacyPass (PassRegistry & )Defined at line 65 of file llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp
-
FPClassTest inverse_fabs (FPClassTest Mask)Return the test mask which returns true after fabs is applied to the value.
Defined at line 35 of file llvm/lib/Support/FloatingPointMode.cpp
-
void initializeRegAllocPriorityAdvisorAnalysisLegacyPass (PassRegistry & )Defined at line 39 of file llvm/lib/CodeGen/RegAllocPriorityAdvisor.cpp
-
FPClassTest unknown_sign (FPClassTest Mask)Return the test mask which returns true if the value could have the same set
of classes, but with a different sign.
Defined at line 48 of file llvm/lib/Support/FloatingPointMode.cpp
-
void initializeRegBankSelectPass (PassRegistry & )Defined at line 69 of file llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
-
void initializeRemoveRedundantDebugValuesLegacyPass (PassRegistry & )Defined at line 65 of file llvm/lib/CodeGen/RemoveRedundantDebugValues.cpp
-
void initializeRuntimeLibraryInfoWrapperPass (PassRegistry & )Defined at line 32 of file llvm/lib/Analysis/RuntimeLibcallInfo.cpp
-
void RemapSourceAtom (Instruction * I, int & VM)Remap source location atom. Called by RemapInstruction. This updates the
instruction's atom group number if it has been mapped (e.g. with
llvm::mapAtomInstance), which is necessary to distinguish source code
atoms on duplicated code paths.
Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, MemoryEffectsBase RMRB)Debug print MemoryEffects.
Defined at line 37 of file llvm/lib/Support/ModRef.cpp
-
void initializeSlotIndexesWrapperPassPass (PassRegistry & )Defined at line 47 of file llvm/lib/CodeGen/SlotIndexes.cpp
-
void initializeSpillPlacementWrapperLegacyPass (PassRegistry & )Defined at line 54 of file llvm/lib/CodeGen/SpillPlacement.cpp
-
BasicBlock * SplitBlock (BasicBlock * Old, int SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Split the specified block at the specified instruction.
If
is true, splitBlockBefore handles the block
splitting. Otherwise, execution proceeds as described below.
Everything before
stays in
and everything starting with
moves to a new block. The two blocks are joined by an unconditional
branch. The new block with name
is returned.
FIXME: deprecated, switch to the DomTreeUpdater-based one.
Defined at line of file
-
bool operator< (const BranchView & LHS, const BranchView & RHS)Defined at line 73 of file llvm/tools/llvm-cov/SourceCoverageView.h
-
bool isVectorizedTy (Type * Ty)Returns true if `Ty` is a vector type or a struct of vector types where all
vector types share the same VF.
Defined at line 73 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, std::optional<T>> checkedMulAdd (T A, T B, T C)Multiply A and B, and add C to the resulting product.
Returns
Optional of result if no signed overflow occurred,
otherwise.
Defined at line 73 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>int checkedMulAdd (T A, T B, T C)Multiply A and B, and add C to the resulting product.
Returns
Optional of result if no signed overflow occurred,
otherwise.
Defined at line 73 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <class S1Ty, class S2Ty>S1Ty set_intersection_impl (const S1Ty & S1, const S2Ty & S2)Defined at line 73 of file llvm/include/llvm/ADT/SetOperations.h
-
void InitializeAllTargets ()InitializeAllTargets - The main program should call this function if it
wants access to all available target machines that LLVM is configured to
support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 73 of file llvm/include/llvm/Support/TargetSelect.h
-
template <typename BlockTOrBlockFreq, typename BFIT>bool shouldOptimizeForSizeImpl (BlockTOrBlockFreq BBOrBlockFreq, ProfileSummaryInfo * PSI, BFIT * BFI, PGSOQueryType QueryType)Defined at line 73 of file llvm/include/llvm/Transforms/Utils/SizeOpts.h
-
template <class T>void format (const T & Fractional, struct tm & LT, raw_ostream & OS, StringRef Style)Defined at line 73 of file llvm/lib/Support/Chrono.cpp
-
void initializeX86TileConfigPass (PassRegistry & )Defined at line 74 of file llvm/lib/Target/X86/X86TileConfig.cpp
-
template <typename T>iterator_range<T> make_range (std::pair<T, T> p)Defined at line 74 of file llvm/include/llvm/ADT/iterator_range.h
-
template <typename GenT, typename RangeT, typename ElT>ReservoirSampler<ElT, GenT> makeSampler (GenT & RandGen, RangeT && Items)Defined at line 75 of file llvm/include/llvm/FuzzMutate/Random.h
-
template <typename Int>bool isValidAtomicOrdering (Int I)Validate an integral value which isn't known to fit within the enum's range
is a valid AtomicOrdering.
Defined at line 75 of file llvm/include/llvm/Support/AtomicOrdering.h
-
raw_ostream & operator<< (raw_ostream & OS, const ARM::WinEH::ReturnType & RT)Defined at line 75 of file llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp
-
DenseMap writeMemProfFrameArray (ProfOStream & OS, llvm::MapVector<memprof::FrameId, memprof::Frame> & MemProfFrameData, llvm::DenseMap<memprof::FrameId, memprof::FrameStat> & FrameHistogram)Serialize MemProfFrameData. Return the mapping from FrameIds to their
indexes within the frame array.
Defined at line 75 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
void initializeX86WinEHUnwindV2Pass (PassRegistry & )Defined at line 76 of file llvm/lib/Target/X86/X86WinEHUnwindV2.cpp
-
template <typename Range>InterleavedRange<Range> interleaved (const Range & R, StringRef Separator, StringRef Prefix, StringRef Suffix)Output range `R` as a sequence of interleaved elements. Requires the range
element type to be printable using `raw_ostream
&
operator
<
<
`. The
`Separator` and `Prefix` / `Suffix` can be customized. Examples:
```c++
SmallVector
<int
> Vals = {1, 2, 3};
OS
<
<
interleaved(Vals); // ==> "1, 2, 3"
OS
<
<
interleaved(Vals, ";"); // ==> "1;2;3"
OS
<
<
interleaved(Vals, " ", "{", "}"); // ==> "{1 2 3}"
```
Defined at line 76 of file llvm/include/llvm/Support/InterleavedRange.h
-
error_code restoreStdHandleAutoConversion (int FD)Defined at line 76 of file llvm/include/llvm/Support/AutoConvert.h
-
bool operator< (const DWARFAddressRange & LHS, const DWARFAddressRange & RHS)Defined at line 77 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h
-
bool internalizeModule (Module & TheModule, std::function<bool (const GlobalValue &)> MustPreserveGV)Helper function to internalize functions and variables in a Module.
Defined at line 77 of file llvm/include/llvm/Transforms/IPO/Internalize.h
-
template <typename T>T maskTrailingOnes (unsigned int N)Create a bitmask with the N right-most bits set to 1, and all other
bits set to 0. Only unsigned types are allowed.
Defined at line 77 of file llvm/include/llvm/Support/MathExtras.h
-
template <class BlockT, class LoopT>std::pair<BlockT *, bool> getExitBlockHelper (const LoopBase<BlockT, LoopT> * L, bool Unique)getExitBlock - If getExitBlocks would return exactly one block,
return that block. Otherwise return null.
Defined at line 77 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <typename RangeT>decltype(adl_detail::begin_impl(std::forward<RangeT>(range))) adl_begin (RangeT && range)Returns the begin iterator to
using `std::begin` and
function found through Argument-Dependent Lookup (ADL).
Defined at line 78 of file llvm/include/llvm/ADT/ADL.h
-
bool hasUTF16ByteOrderMark (ArrayRef SrcBytes)Returns true if a blob of text starts with a UTF-16 big or little endian byte
order mark.
Defined at line 78 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
tuple fcmpImpliesClass (Predicate Pred, const Function & F, Value * LHS, Value * RHS, bool LookThroughSrc)Defined at line 78 of file llvm/include/llvm/Analysis/FloatingPointPredicateUtils.h
-
void initializeMIRPrintingPassPass (PassRegistry & )Defined at line 80 of file llvm/lib/CodeGen/MIRPrintingPass.cpp
-
void initializeMachineCFGPrinterPass (PassRegistry & )Defined at line 79 of file llvm/lib/CodeGen/MachineCFGPrinter.cpp
-
unsigned int encodeULEB128 (uint64_t Value, raw_ostream & OS, unsigned int PadTo)Utility function to encode a ULEB128 value to an output stream. Returns
the length in bytes of the encoded value.
Defined at line 79 of file llvm/include/llvm/Support/LEB128.h
-
bool canRoundingModeBe (RoundingMode RM, RoundingMode QRM)Returns true if the rounding mode RM may be QRM at compile time or
at run time.
Defined at line 80 of file llvm/include/llvm/IR/FPEnv.h
-
template <size_t N, class CostType>const TypeConversionCostTblEntryT<CostType> * ConvertCostTableLookup (const TypeConversionCostTblEntryT<CostType> (&)[N] Table, int ISD, MVT Dst, MVT Src)Defined at line 80 of file llvm/include/llvm/CodeGen/CostTable.h
-
Model getEffectiveCodeModel (std::optional<CodeModel::Model> CM, Model Default)Helper method for getting the code model, returning Default if
CM does not have a value. The tiny and kernel models will produce
an error, so targets that support them or require more complex codemodel
selection logic should implement and call their own getEffectiveCodeModel.
Defined at line 80 of file llvm/include/llvm/CodeGen/CodeGenTargetMachineImpl.h
-
vector findIndirectCalls (Function & F)Defined at line 81 of file llvm/include/llvm/Analysis/IndirectCallVisitor.h
-
bool isScopedEHPersonality (EHPersonality Pers)Returns true if this personality uses scope-style EH IR instructions:
catchswitch, catchpad/ret, and cleanuppad/ret.
Defined at line 81 of file llvm/include/llvm/IR/EHPersonalities.h
-
unsigned int hexDigitValue (char C)Interpret the given character
as a hexadecimal digit and return its
value.
If
is not a valid hex digit, -1U is returned.
Defined at line 81 of file llvm/include/llvm/ADT/StringExtras.h
-
void dumpSectionMemory (const SectionEntry & S, StringRef State)Defined at line 81 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
bool isArm64ECMangledFunctionName (StringRef Name)Check if an ARM64EC function name is mangled.
Defined at line 82 of file llvm/include/llvm/IR/Mangler.h
-
unsigned int getNumFSPasses ()Return the number of FS passes, excluding the pass adding the base
discriminators.
The number of passes for FS discriminators. Note that the total
number of discriminaitor bits, i.e.
BaseDiscriminatorBitWidth
+ FSDiscriminatorBitWidth * getNumFSPasses()
needs to fit in an unsigned int type.
Defined at line 82 of file llvm/include/llvm/Support/Discriminator.h
-
error_code make_error_code (errc E)Defined at line 82 of file llvm/include/llvm/Support/Errc.h
-
bool operator== (const DWARFAddressRange & LHS, const DWARFAddressRange & RHS)Defined at line 82 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h
-
template <typename GenT, typename T>ReservoirSampler<T, GenT> makeSampler (GenT & RandGen, const T & Item, uint64_t Weight)Defined at line 82 of file llvm/include/llvm/FuzzMutate/Random.h
-
const char * toIRString (AtomicOrdering ao)String used by LLVM IR to represent atomic ordering.
Defined at line 82 of file llvm/include/llvm/Support/AtomicOrdering.h
-
unique_ptr createMachODumper (const object::MachOObjectFile & Obj, ScopedPrinter & Writer)Defined at line 83 of file llvm/tools/llvm-readobj/MachODumper.cpp
-
void initializeX86DynAllocaExpanderLegacyPass (PassRegistry & )Defined at line 83 of file llvm/lib/Target/X86/X86DynAllocaExpander.cpp
-
void initializePatchableFunctionLegacyPass (PassRegistry & )Defined at line 83 of file llvm/lib/CodeGen/PatchableFunction.cpp
-
void initializeRegUsageInfoCollectorLegacyPass (PassRegistry & )Defined at line 79 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp
-
void initializeRemoveLoadsIntoFakeUsesLegacyPass (PassRegistry & )Defined at line 80 of file llvm/lib/CodeGen/RemoveLoadsIntoFakeUses.cpp
-
void initializeTailDuplicateLegacyPass (PassRegistry & )Defined at line 81 of file llvm/lib/CodeGen/TailDuplication.cpp
-
template <class S1Ty, class S2Ty>S1Ty set_intersection (const S1Ty & S1, const S2Ty & S2)set_intersection(A, B) - Return A ^ B
Defined at line 83 of file llvm/include/llvm/ADT/SetOperations.h
-
bool isHeuristicInlineCostFeature (InlineCostFeatureIndex Feature)Defined at line 83 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
-
void validateCommandLine ()Validate the command line input.
Defined at line 83 of file llvm/tools/llvm-profgen/llvm-profgen.cpp
-
bool convertUTF16ToUTF8String (ArrayRef SrcBytes, std::string & Out)Converts a stream of raw bytes assumed to be UTF16 into a UTF8 std::string.
Parameters
SrcBytes [in] A buffer of what is assumed to be UTF-16 encoded text.Out [out] Converted UTF-8 is stored here on success.Defined at line 83 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedAddUnsigned (T LHS, T RHS)Add two unsigned integers
and
Returns
Optional of sum if no unsigned overflow occurred,
otherwise.
Defined at line 84 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>int checkedAddUnsigned (T LHS, T RHS)Add two unsigned integers
and
Returns
Optional of sum if no unsigned overflow occurred,
otherwise.
Defined at line 84 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
error_code setFileTag (int FD, int CCSID, bool Text)Defined at line 84 of file llvm/include/llvm/Support/AutoConvert.h
-
int MCLOHIdToNbArgs (MCLOHType Kind)Defined at line 84 of file llvm/include/llvm/MC/MCLinkerOptimizationHint.h
-
void initializeX86ExpandPseudoPass (PassRegistry & )Defined at line 85 of file llvm/lib/Target/X86/X86ExpandPseudo.cpp
-
void initializeScalarizeMaskedMemIntrinLegacyPassPass (PassRegistry & )Defined at line 85 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RegisterBank & RegBank)Defined at line 85 of file llvm/include/llvm/CodeGen/RegisterBank.h
-
bool canVectorizeTy (Type * Ty)Returns true if `Ty` is a valid vector element type, void, or an unpacked
literal struct where all elements are valid vector element types.
Note: Even if a type can be vectorized that does not mean it is valid to do
so in all cases. For example, a vectorized struct (as returned by
toVectorizedTy) does not perform (de)interleaving, so it can't be used for
vectorizing loads/stores.
Defined at line 85 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
raw_ostream & WriteGraph (raw_ostream & O, const EdgeBundles & G, bool ShortNames, const Twine & Title)Specialize WriteGraph, the standard implementation won't work.
Defined at line 85 of file llvm/lib/CodeGen/EdgeBundles.cpp
-
void initializeStackMapLivenessPass (PassRegistry & )Defined at line 86 of file llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
-
bool canIgnoreSNaN (ExceptionBehavior EB, FastMathFlags FMF)Returns true if the possibility of a signaling NaN can be safely
ignored.
Defined at line 86 of file llvm/include/llvm/IR/FPEnv.h
-
template <typename RangeT>decltype(adl_detail::end_impl(std::forward<RangeT>(range))) adl_end (RangeT && range)Returns the end iterator to
using `std::end` and
functions found through Argument-Dependent Lookup (ADL).
Defined at line 86 of file llvm/include/llvm/ADT/ADL.h
-
bool operator== (const line_iterator & LHS, const line_iterator & RHS)Defined at line 86 of file llvm/include/llvm/Support/LineIterator.h
-
void InitializeAllTargetMCs ()InitializeAllTargetMCs - The main program should call this function if it
wants access to all available target MC that LLVM is configured to
support, to make them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 86 of file llvm/include/llvm/Support/TargetSelect.h
-
X86AddressMode getAddressFromInstr (const MachineInstr * MI, unsigned int Operand)Compute the addressing mode from an machine instruction starting with the
given operand.
Defined at line 86 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
template <typename Function, typename... Args>void call_once (once_flag & flag, Function && F, Args &&... ArgList)Execute the function specified as a parameter once.
Typical usage:
Parameters
flag Flag used for tracking whether or not this has run.F Function to call once.Code
void foo() {...}; ... static once_flag flag; call_once(flag, foo);Defined at line 86 of file llvm/include/llvm/Support/Threading.h
-
unsigned int getFSPassBitEnd (FSDiscriminatorPass P)Return the ending bit for FSPass P.
Defined at line 87 of file llvm/include/llvm/Support/Discriminator.h
-
bool operator!= (const NodeType & M, const NodeType & N)Defined at line 88 of file llvm/include/llvm/ADT/DirectedGraph.h
-
template <typename T>T maskLeadingOnes (unsigned int N)Create a bitmask with the N left-most bits set to 1, and all other
bits set to 0. Only unsigned types are allowed.
Defined at line 88 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator< (const MCDCView & LHS, const MCDCView & RHS)Defined at line 88 of file llvm/tools/llvm-cov/SourceCoverageView.h
-
vector findVTableAddrs (Function & F)Defined at line 88 of file llvm/include/llvm/Analysis/IndirectCallVisitor.h
-
void initializeMachineCycleInfoPrinterLegacyPass (PassRegistry & )Defined at line 89 of file llvm/lib/CodeGen/MachineCycleAnalysis.cpp
-
FunctionPass * createScalarizeMaskedMemIntrinLegacyPass ()===----------------------------------------------------------------------===//
createScalarizeMaskedMemIntrinPass - Replace masked load, store, gather
and scatter intrinsics with scalar code when target doesn't support them.
Defined at line 89 of file llvm/lib/Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp
-
unique_ptr parseInputFile (StringRef InputFilename, LLVMContext & ctxt)Given a bitcode or assembly input filename, parse and return it, or return
null if not possible.
Defined at line 86 of file llvm/tools/bugpoint/BugDriver.cpp
-
raw_ostream & operator<< (raw_ostream & OS, FPClassTest Mask)Write a human readable form of
to
Defined at line 86 of file llvm/lib/Support/FloatingPointMode.cpp
-
void initializeRegUsageInfoPropagationLegacyPass (PassRegistry & )Defined at line 90 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
-
void initializeResetMachineFunctionPass (PassRegistry & )Defined at line 89 of file llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
-
template <typename T>support::detail::AlignAdapter<T> fmt_align (T && Item, AlignStyle Where, size_t Amount, char Fill)Defined at line 89 of file llvm/include/llvm/Support/FormatAdapters.h
-
void shortenFileName (std::string & FN, unsigned char len)Defined at line 89 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
-
bool operator== (const hash_code & lhs, const hash_code & rhs)Defined at line 90 of file llvm/include/llvm/ADT/Hashing.h
-
template <typename T, typename GenT>ReservoirSampler<T, GenT> makeSampler (GenT & RandGen)Defined at line 90 of file llvm/include/llvm/FuzzMutate/Random.h
-
bool operator< (const IntrinsicData & LHS, unsigned int Id)Defined at line 90 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h
-
template <typename To, typename From, typename = std::enable_if_t<sizeof(To) == sizeof(From)>, typename = std::enable_if_t<std::is_trivially_constructible<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<To>::value>, typename = std::enable_if_t<std::is_trivially_copyable<From>::value>>To bit_cast (const From & from)This implementation of bit_cast is different from the C++20 one in two ways:
- It isn't constexpr because that requires compiler support.
- It requires trivially-constructible To, to avoid UB in the implementation.
Defined at line 90 of file llvm/include/llvm/ADT/bit.h
-
int compileModuleWithNewPM (StringRef Arg0, int M, int MIR, int Target, int Out, int DwoOut, LLVMContext & Context, const TargetLibraryInfoImpl & TLII, VerifierKind VK, StringRef PassPipeline, CodeGenFileType FileType)Defined at line 90 of file llvm/tools/llc/NewPMDriver.cpp
-
void initializeStaticDataAnnotatorPass (PassRegistry & )Defined at line 91 of file llvm/lib/CodeGen/StaticDataAnnotator.cpp
-
bool operator!= (const line_iterator & LHS, const line_iterator & RHS)Defined at line 91 of file llvm/include/llvm/Support/LineIterator.h
-
raw_ostream & operator<< (raw_ostream & OS, const VNInfo & VNI)Defined at line 91 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
ErrorOr needConversion (const Twine & FileName, const int FD)Defined at line 91 of file llvm/include/llvm/Support/AutoConvert.h
-
bool isStrongerThan (AtomicOrdering AO, AtomicOrdering Other)Returns true if ao is stronger than other as defined by the AtomicOrdering
lattice, which is based on C++'s definition.
Defined at line 91 of file llvm/include/llvm/Support/AtomicOrdering.h
-
template <typename Range>InterleavedRange<Range> interleaved_array (const Range & R, StringRef Separator)Output range `R` as an array of interleaved elements. Requires the range
element type to be printable using `raw_ostream
&
operator
<
<
`. The
`Separator` can be customized. Examples:
```c++
SmallVector
<int
> Vals = {1, 2, 3};
OS
<
<
interleaved_array(Vals); // ==> "[1, 2, 3]"
OS
<
<
interleaved_array(Vals, ";"); // ==> "[1;2;3]"
OS
<
<
interleaved_array(Vals, " "); // ==> "[1 2 3]"
```
Defined at line 92 of file llvm/include/llvm/Support/InterleavedRange.h
-
Printable PrintLaneMask (LaneBitmask LaneMask)Create Printable object to print LaneBitmasks on a
Defined at line 92 of file llvm/include/llvm/MC/LaneBitmask.h
-
GVDAGType getGVDT ()Defined at line 92 of file llvm/lib/Analysis/BlockFrequencyInfo.cpp
-
bool operator!= (const hash_code & lhs, const hash_code & rhs)Defined at line 93 of file llvm/include/llvm/ADT/Hashing.h
-
template <typename T>int checkedMulUnsigned (T LHS, T RHS)Multiply two unsigned integers
and
Returns
Optional of product if no unsigned overflow occurred,
otherwise.
Defined at line 93 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedMulUnsigned (T LHS, T RHS)Multiply two unsigned integers
and
Returns
Optional of product if no unsigned overflow occurred,
otherwise.
Defined at line 93 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
ArrayRef getContainedTypes (Type *const & Ty)Returns the types contained in `Ty`. For struct types, it returns the
elements, all other types are returned directly.
Defined at line 93 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
template <class S1Ty, class S2Ty>S1Ty set_difference (const S1Ty & S1, const S2Ty & S2)set_difference(A, B) - Return A - B
Defined at line 93 of file llvm/include/llvm/ADT/SetOperations.h
-
void initializeMachineDominatorTreeWrapperPassPass (PassRegistry & )Defined at line 94 of file llvm/lib/CodeGen/MachineDominators.cpp
-
void initializeMachineLateInstrsCleanupLegacyPass (PassRegistry & )Defined at line 94 of file llvm/lib/CodeGen/MachineLateInstrsCleanup.cpp
-
template <typename T>T maskTrailingZeros (unsigned int N)Create a bitmask with the N right-most bits set to 0, and all other
bits set to 1. Only unsigned types are allowed.
Defined at line 94 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename RangeT>decltype(adl_detail::rbegin_impl(std::forward<RangeT>(range))) adl_rbegin (RangeT && range)Returns the reverse-begin iterator to
using `std::rbegin` and
function found through Argument-Dependent Lookup (ADL).
Defined at line 94 of file llvm/include/llvm/ADT/ADL.h
-
unsigned int getFSPassBitBegin (FSDiscriminatorPass P)Return the begining bit for FSPass P.
Defined at line 94 of file llvm/include/llvm/Support/Discriminator.h
-
template <class T>basic_string to_string (const T & Value)Defined at line 95 of file llvm/include/llvm/Support/ScopedPrinter.h
-
template <typename T>support::detail::PadAdapter<T> fmt_pad (T && Item, size_t Left, size_t Right)Defined at line 96 of file llvm/include/llvm/Support/FormatAdapters.h
-
void InitializeAllAsmPrinters ()InitializeAllAsmPrinters - The main program should call this function if
it wants all asm printers that LLVM is configured to support, to make them
available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 96 of file llvm/include/llvm/Support/TargetSelect.h
-
unsigned short computeExpressionSize (ArrayRef Args)Defined at line 96 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
-
void exportDebugifyStats (StringRef Path, const int & Map)Defined at line of file
-
ConstantRange getRange (Value * Op, SCCPSolver & Solver, const SmallPtrSetImpl<Value *> & InsertedValues)Helper for getting ranges from
Instructions inserted during
simplification are unavailable in the solver, so we return a full range for
them.
Defined at line 96 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp
-
uint64_t getInstrMaxCountValue ()Return the max count value. We reserver a few large values for special use.
Defined at line 97 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool isNoOpWithoutInvoke (EHPersonality Pers)Return true if this personality may be safely removed if there
are no invoke instructions remaining in the current function.
Defined at line 97 of file llvm/include/llvm/IR/EHPersonalities.h
-
size_t hash_value (const hash_code & code)Allow a hash_code to be directly run through hash_value.
Defined at line 98 of file llvm/include/llvm/ADT/Hashing.h
-
BasicBlock * SplitCriticalEdge (Instruction * TI, unsigned int SuccNum, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)If this edge is a critical edge, insert a new node to split the critical
edge. This will update the analyses passed in through the option struct.
This returns the new block if the edge was split, null otherwise.
If MergeIdenticalEdges in the options struct is true (not the default),
*all* edges from TI to the specified successor will be merged into the same
critical edge block. This is most commonly interesting with switch
instructions, which may have many edges to any one destination. This
ensures that all edges to that dest go to one block instead of each going
to a different block, but isn't the standard definition of a "critical
edge".
It is invalid to call this function on a critical edge that starts at an
IndirectBrInst. Splitting these edges will almost always create an invalid
program because the address of the new block won't be the one that is jumped
to.
Defined at line 102 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
-
void initializeX86FastPreTileConfigPass (PassRegistry & )Defined at line 98 of file llvm/lib/Target/X86/X86FastPreTileConfig.cpp
-
void initializeX86ReturnThunksPass (PassRegistry & )Defined at line 97 of file llvm/lib/Target/X86/X86ReturnThunks.cpp
-
void initializeSjLjEHPreparePass (PassRegistry & )Defined at line 98 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp
-
std::optional<PseudoProbe> extractProbe (const MachineInstr & MI)Defined at line 99 of file llvm/lib/CodeGen/MIRSampleProfile.cpp
-
Align assumeAligned (uint64_t Value)Treats the value 0 as a 1, so Align is always at least 1.
Defined at line 100 of file llvm/include/llvm/Support/Alignment.h
-
template <typename T>T maskLeadingZeros (unsigned int N)Create a bitmask with the N left-most bits set to 0, and all other
bits set to 1. Only unsigned types are allowed.
Defined at line 100 of file llvm/include/llvm/Support/MathExtras.h
-
ElementCount getVectorizedTypeVF (Type * Ty)Returns the number of vector elements for a vectorized type.
Defined at line 100 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
template <typename T>support::detail::RepeatAdapter<T> fmt_repeat (T && Item, size_t Count)Defined at line 101 of file llvm/include/llvm/Support/FormatAdapters.h
-
template <typename RangeT>decltype(adl_detail::rend_impl(std::forward<RangeT>(range))) adl_rend (RangeT && range)Returns the reverse-end iterator to
using `std::rend` and
functions found through Argument-Dependent Lookup (ADL).
Defined at line 102 of file llvm/include/llvm/ADT/ADL.h
-
template <typename T>int checkedMulAddUnsigned (T A, T B, T C)Multiply unsigned integers A and B, and add C to the resulting product.
Returns
Optional of result if no unsigned overflow occurred,
otherwise.
Defined at line 102 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, std::optional<T>> checkedMulAddUnsigned (T A, T B, T C)Multiply unsigned integers A and B, and add C to the resulting product.
Returns
Optional of result if no unsigned overflow occurred,
otherwise.
Defined at line 102 of file llvm/include/llvm/Support/CheckedArithmetic.h
-
template <typename GraphT>void printGraphForFunction (Function & F, GraphT Graph, StringRef Name, bool IsSimple)Defined at line 102 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
-
template <typename T, typename = std::enable_if_t<std::is_integral_v<T>>>T byteswap (T V)Reverses the bytes in the given integer value V.
Defined at line 102 of file llvm/include/llvm/ADT/bit.h
-
RegAllocEvictionAdvisorAnalysisLegacy * createDevelopmentModeAdvisorAnalysisLegacy ()Defined at line of file
-
legacy::PassManagerBase * unwrap (LLVMPassManagerRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h
-
template <>T * unwrap (LLVMPassManagerRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h
-
LLVMPassManagerRef wrap (const legacy::PassManagerBase * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 103 of file llvm/include/llvm/IR/LegacyPassManager.h
-
void initializeStripDebugMachineModulePass (PassRegistry & )Defined at line 103 of file llvm/lib/CodeGen/MachineStripDebug.cpp
-
template <typename T, typename TEnum>basic_string enumToString (T Value, ArrayRef<EnumEntry<TEnum>> EnumValues)Defined at line 103 of file llvm/include/llvm/Support/ScopedPrinter.h
-
bool isODRAttribute (uint16_t Attr)Defined at line 103 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
unsigned int encodeULEB128 (uint64_t Value, uint8_t * p, unsigned int PadTo)Utility function to encode a ULEB128 value to a buffer. Returns
the length in bytes of the encoded value.
Defined at line 103 of file llvm/include/llvm/Support/LEB128.h
-
void initializeSingleLoopExtractorPass (PassRegistry & )Defined at line 104 of file llvm/lib/Transforms/IPO/LoopExtractor.cpp
-
template <typename T, typename = std::enable_if_t<!std::is_convertible_v<T, bool>>>auto success (T && Y)Wrap a value on the success path in a FailureOr of the same value type.
Defined at line 104 of file llvm/include/llvm/Support/LogicalResult.h
-
template <class InnerMatcher>detail::ValueIsMatcher<InnerMatcher> ValueIs (const InnerMatcher & ValueMatcher)Matches an std::optional
<T
> with a value that conforms to an inner matcher.
To match std::nullopt you could use Eq(std::nullopt).
Defined at line 104 of file llvm/include/llvm/Testing/Support/SupportHelpers.h
-
int getLastFSPassBitBegin ()Return the beginning bit for the last FSPass.
Defined at line 104 of file llvm/include/llvm/Support/Discriminator.h
-
bool isUnpackedStructLiteral (StructType * StructTy)Defined at line 105 of file llvm/include/llvm/IR/VectorTypeUtils.h
-
bool isDigit (char C)Checks if character
is one of the 10 decimal digits.
Defined at line 106 of file llvm/include/llvm/ADT/StringExtras.h
-
void InitializeAllAsmParsers ()InitializeAllAsmParsers - The main program should call this function if it
wants all asm parsers that LLVM is configured to support, to make them
available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 106 of file llvm/include/llvm/Support/TargetSelect.h
-
template <typename T>unsigned int ComputeEditDistance (ArrayRef<T> FromArray, ArrayRef<T> ToArray, bool AllowReplacements, unsigned int MaxEditDistance)Defined at line 106 of file llvm/include/llvm/ADT/edit_distance.h
-
bool isAtLeastOrStrongerThan (AtomicOrdering AO, AtomicOrdering Other)Defined at line 106 of file llvm/include/llvm/Support/AtomicOrdering.h
-
template <class S1Ty, class S2Ty>void set_subtract (S1Ty & S1, const S2Ty & S2)set_subtract(A, B) - Compute A := A - B
Selects the set to iterate based on the relative sizes of A and B for better
efficiency.
Defined at line 106 of file llvm/include/llvm/ADT/SetOperations.h
-
void initializePrintModulePassWrapperPass (PassRegistry & )Defined at line 107 of file llvm/lib/IR/IRPrintingPasses.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RecTy & Ty)Defined at line 107 of file llvm/include/llvm/TableGen/Record.h
-
ErrorAdapter fmt_consume (Error && Item)llvm::Error values must be consumed before being destroyed.
Wrapping an error in fmt_consume explicitly indicates that the formatv_object
should take ownership and consume it.
Defined at line 108 of file llvm/include/llvm/Support/FormatAdapters.h
-
bool isHexDigit (char C)Checks if character
is a hexadecimal numeric character.
Defined at line 109 of file llvm/include/llvm/ADT/StringExtras.h
-
bool refineInstruction (SCCPSolver & Solver, const SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)Try to use
value range from
to infer the NUW flag.
Defined at line 109 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp
-
bool mayBeOldLoopAttachmentTag (StringRef Name)Check whether a string looks like an old loop attachment tag.
Defined at line 110 of file llvm/include/llvm/IR/AutoUpgrade.h
-
unsigned int getLastFSPassBitEnd ()Return the ending bit for the last FSPass.
Defined at line 110 of file llvm/include/llvm/Support/Discriminator.h
-
PredIterator pred_begin (BasicBlock * BB)Defined at line 111 of file llvm/include/llvm/IR/CFG.h
-
uint64_t MD5Hash (StringRef Str)Helper to compute and return lower 64 bits of the given string's MD5 hash.
Defined at line 111 of file llvm/include/llvm/Support/MD5.h
-
BasicBlock * SplitKnownCriticalEdge (Instruction * TI, unsigned int SuccNum, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)If it is known that an edge is critical, SplitKnownCriticalEdge can be
called directly, rather than calling SplitCriticalEdge first.
Defined at line 111 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
-
void initializePrintFunctionPassWrapperPass (PassRegistry & )Defined at line 110 of file llvm/lib/IR/IRPrintingPasses.cpp
-
void initializePromoteLegacyPassPass (PassRegistry & )Defined at line 110 of file llvm/lib/Transforms/Utils/Mem2Reg.cpp
-
template <typename T>void adl_swap (T && lhs, T && rhs)Swaps
with
using `std::swap` and functions found through
Argument-Dependent Lookup (ADL).
Defined at line 110 of file llvm/include/llvm/ADT/ADL.h
-
bool isLower (char C)Checks if character
is a lowercase letter as classified by "C" locale.
Defined at line 112 of file llvm/include/llvm/ADT/StringExtras.h
-
JITEventListener * unwrap (LLVMJITEventListenerRef P)Defined at line 112 of file llvm/include/llvm/ExecutionEngine/JITEventListener.h
-
LLVMJITEventListenerRef wrap (const JITEventListener * P)Defined at line 112 of file llvm/include/llvm/ExecutionEngine/JITEventListener.h
-
PredIterator pred_begin (const BasicBlock * BB)Defined at line 112 of file llvm/include/llvm/IR/CFG.h
-
StringRef getInstrProfValueProfFuncName ()Return the name profile runtime entry point to do value profiling
for a given site.
Defined at line 112 of file llvm/include/llvm/ProfileData/InstrProf.h
-
Description getDescImpl (ArrayRef Descriptions, unsigned int Opcode)Defined at line 113 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp
-
void initializeX86LoadValueInjectionRetHardeningPassPass (PassRegistry & )Defined at line 114 of file llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp
-
void initializePostDomViewerWrapperPassPass (PassRegistry & )Defined at line 114 of file llvm/lib/Analysis/DomPrinter.cpp
-
template <typename T, typename TEnum>StringRef enumToStringRef (T Value, ArrayRef<EnumEntry<TEnum>> EnumValues)Retrieves the Value's enum name.
Returns an empty StringRef when an invalid value is provided.
Defined at line 114 of file llvm/include/llvm/Support/ScopedPrinter.h
-
bool isUpper (char C)Checks if character
is a uppercase letter as classified by "C" locale.
Defined at line 115 of file llvm/include/llvm/ADT/StringExtras.h
-
PredIterator pred_end (BasicBlock * BB)Defined at line 115 of file llvm/include/llvm/IR/CFG.h
-
raw_ostream & operator<< (raw_ostream & OS, const DbgValueDef & DV)Defined at line 115 of file llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
-
unsigned int getBaseFSBitBegin ()Return the beginning bit for the base (first) FSPass.
Defined at line 116 of file llvm/include/llvm/Support/Discriminator.h
-
void initializeMachineOptimizationRemarkEmitterPassPass (PassRegistry & )Defined at line 116 of file llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
-
PredIterator pred_end (const BasicBlock * BB)Defined at line 116 of file llvm/include/llvm/IR/CFG.h
-
void InitializeAllDisassemblers ()InitializeAllDisassemblers - The main program should call this function if
it wants all disassemblers that LLVM is configured to support, to make
them available via the TargetRegistry.
It is legal for a client to make multiple calls to this function.
Defined at line 116 of file llvm/include/llvm/Support/TargetSelect.h
-
bool operator== (const SMTExpr & LHS, const SMTExpr & RHS)Defined at line 117 of file llvm/include/llvm/Support/SMTAPI.h
-
FunctionPass * createX86LoadValueInjectionRetHardeningPass ()Defined at line 117 of file llvm/lib/Target/X86/X86LoadValueInjectionRetHardening.cpp
-
const MachineInstrBuilder & addDirectMem (const MachineInstrBuilder & MIB, Register Reg)addDirectMem - This function is used to add a direct memory reference to the
current instruction -- that is, a dereference of an address in a register,
with no scale, index or displacement. An example is: DWORD PTR [EAX].
Defined at line 117 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
bool isAlpha (char C)Checks if character
is a valid letter as classified by "C" locale.
Defined at line 118 of file llvm/include/llvm/ADT/StringExtras.h
-
void initializePostDomOnlyViewerWrapperPassPass (PassRegistry & )Defined at line 118 of file llvm/lib/Analysis/DomPrinter.cpp
-
StringRef getInstrProfValueProfMemOpFuncName ()Return the name profile runtime entry point to do memop size value
profiling.
Defined at line 118 of file llvm/include/llvm/ProfileData/InstrProf.h
-
RemapFlags operator| (RemapFlags LHS, RemapFlags RHS)Defined at line 118 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
template <typename RangeT>decltype(adl_detail::size_impl(std::forward<RangeT>(range))) adl_size (RangeT && range)Returns the size of
using `std::size` and functions found through
Argument-Dependent Lookup (ADL).
Defined at line 118 of file llvm/include/llvm/ADT/ADL.h
-
template <typename T>T reverseBits (T Val)Reverse the bits in
Defined at line 118 of file llvm/include/llvm/Support/MathExtras.h
-
bool isTypeTag (uint16_t Tag)Defined at line 118 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool pred_empty (const BasicBlock * BB)Defined at line 119 of file llvm/include/llvm/IR/CFG.h
-
unsigned int getBaseFSBitEnd ()Return the ending bit for the base (first) FSPass.
Defined at line 119 of file llvm/include/llvm/Support/Discriminator.h
-
FunctionPass * createInstSimplifyLegacyPass ()Public interface to the simplify instructions pass.
Defined at line 119 of file llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DbgSSAPhi & PHI)Defined at line 119 of file llvm/include/llvm/Transforms/Utils/DebugSSAUpdater.h
-
template <typename KeyMatcherT, typename ValueMatcherT>detail::StringMapEntryMatcher<KeyMatcherT, ValueMatcherT> IsStringMapEntry (KeyMatcherT KM, ValueMatcherT VM)Returns a gMock matcher that matches a `StringMapEntry` whose string key
matches `KeyMatcher`, and whose value matches `ValueMatcher`.
Defined at line 119 of file llvm/include/llvm/Testing/ADT/StringMapEntry.h
-
void initializeX86FlagsCopyLoweringPassPass (PassRegistry & )Defined at line 120 of file llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
-
Description getOpDesc (unsigned int Opcode)Defined at line 120 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp
-
bool isStrongerThanUnordered (AtomicOrdering AO)Defined at line 121 of file llvm/include/llvm/Support/AtomicOrdering.h
-
EmbeddedModelRunnerOptions makeOptions ()Defined at line 121 of file llvm/unittests/Analysis/MLModelRunnerTest.cpp
-
bool isGlobalStubReference (unsigned char TargetFlag)isGlobalStubReference - Return true if the specified TargetFlag operand is
a reference to a stub for a global, not the global itself.
Defined at line 121 of file llvm/lib/Target/X86/X86InstrInfo.h
-
bool isAlnum (char C)Checks whether character
is either a decimal digit or an uppercase or
lowercase letter as classified by "C" locale.
Defined at line 122 of file llvm/include/llvm/ADT/StringExtras.h
-
Use * unwrap (LLVMUseRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 122 of file llvm/include/llvm/IR/Use.h
-
LLVMUseRef wrap (const Use * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 122 of file llvm/include/llvm/IR/Use.h
-
hash_code hash_value (const SpecSig & S)Defined at line 122 of file llvm/include/llvm/Transforms/IPO/FunctionSpecialization.h
-
bool operator== (const VersionTuple & X, const VersionTuple & Y)Determine if two version numbers are equivalent. If not
provided, minor and subminor version numbers are considered to be zero.
Defined at line 122 of file llvm/include/llvm/Support/VersionTuple.h
-
bool operator== (const RefType & LHS, const RefType & RHS)Defined at line 122 of file llvm/include/llvm/Support/BinaryStreamRef.h
-
const char * getHotnessName (HotnessType HT)Defined at line 122 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
StringRef getInstrProfNameVarPrefix ()Return the name prefix of variables containing instrumented function names.
Defined at line 123 of file llvm/include/llvm/ProfileData/InstrProf.h
-
void initializeWinEHStatePassPass (PassRegistry & )Defined at line 124 of file llvm/lib/Target/X86/X86WinEHState.cpp
-
unsigned int pred_size (const BasicBlock * BB)Get the number of predecessors of
This is a linear time operation.
Use
or hasNPredecessorsOrMore if able.
Defined at line 124 of file llvm/include/llvm/IR/CFG.h
-
unsigned int getN1Bits (int N)Set bits in range of [0 .. n] to 1. Used in FS Discriminators.
Defined at line 124 of file llvm/include/llvm/Support/Discriminator.h
-
void initializeX86AvoidSFBPassPass (PassRegistry & )Defined at line 125 of file llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
-
SmallVector<Instruction *, 8> findDefsUsedOutsideOfLoop (Loop * L)Returns the instructions that use values defined in the loop.
Defined at line 124 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool isASCII (char C)Checks whether character
is valid ASCII (high bit is zero).
Defined at line 125 of file llvm/include/llvm/ADT/StringExtras.h
-
void initializeRenameIndependentSubregsLegacyPass (PassRegistry & )Defined at line 125 of file llvm/lib/CodeGen/RenameIndependentSubregs.cpp
-
bool isStrongerThanMonotonic (AtomicOrdering AO)Defined at line 125 of file llvm/include/llvm/Support/AtomicOrdering.h
-
vector getSubOpDescriptions ()Defined at line 125 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp
-
StringRef getInstrProfVTableVarPrefix ()Return the name prefix of variables containing virtual table profile data.
Defined at line 126 of file llvm/include/llvm/ProfileData/InstrProf.h
-
FastMathFlags operator| (FastMathFlags LHS, FastMathFlags RHS)Defined at line 126 of file llvm/include/llvm/IR/FMF.h
-
void setDirectAddressInInstr (MachineInstr * MI, unsigned int Operand, Register Reg)Replace the address used in the instruction with the direct memory
reference.
Defined at line 126 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
bool InitializeNativeTarget ()InitializeNativeTarget - The main program should call this function to
initialize the native target corresponding to the host. This is useful
for JIT applications to ensure that the target gets linked in correctly.
It is legal for a client to make multiple calls to this function.
Defined at line 126 of file llvm/include/llvm/Support/TargetSelect.h
-
int findSplitPointForStackProtector (MachineBasicBlock * BB, const TargetInstrInfo & TII)Find the split point at which to splice the end of BB into its success stack
protector check machine basic block.
On many platforms, due to ABI constraints, terminators, even before register
allocation, use physical registers. This creates an issue for us since
physical registers at this point can not travel across basic
blocks. Luckily, selectiondag always moves physical registers into vregs
when they enter functions and moves them through a sequence of copies back
into the physical registers right before the terminator creating a
``Terminator Sequence''. This function is searching for the beginning of the
terminator sequence so that we can ensure that we splice off not just the
terminator, but additionally the copies that move the vregs into the
physical registers.
Defined at line 126 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp
-
iterator_range predecessors (BasicBlock * BB)Defined at line 127 of file llvm/include/llvm/IR/CFG.h
-
bool isASCII (StringRef S)Checks whether all characters in S are ASCII.
Defined at line 128 of file llvm/include/llvm/ADT/StringExtras.h
-
template <class BlockT, class LoopT, typename PredicateT>void getUniqueExitBlocksHelper (const LoopT * L, SmallVectorImpl<BlockT *> & ExitBlocks, PredicateT Pred)Helper function to get unique loop exits. Pred is a predicate pointing to
BasicBlocks in a loop which should be considered to find loop exits.
Defined at line 128 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
inst_iterator inst_begin (Function * F)Defined at line 129 of file llvm/include/llvm/IR/InstIterator.h
-
StringRef getInstrProfDataVarPrefix ()Return the name prefix of variables containing per-function control data.
Defined at line 129 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool isSentinelProbe (uint32_t Flags)Defined at line 129 of file llvm/include/llvm/IR/PseudoProbe.h
-
bool isAcquireOrStronger (AtomicOrdering AO)Defined at line 129 of file llvm/include/llvm/Support/AtomicOrdering.h
-
template <typename... Ts>format_object<Ts...> format (const char * Fmt, const Ts &... Vals)These are helper functions used to produce formatted output. They use
template type deduction to construct the appropriate instance of the
format_object class to simplify their construction.
This is typically used like:
Code
OS << format("%0.4f", myfloat) << '\n';Defined at line 129 of file llvm/include/llvm/Support/Format.h
-
inst_iterator inst_end (Function * F)Defined at line 130 of file llvm/include/llvm/IR/InstIterator.h
-
iterator_range predecessors (const BasicBlock * BB)Defined at line 130 of file llvm/include/llvm/IR/CFG.h
-
bool timeTraceProfilerEnabled ()Is the time trace profiler enabled, i.e. initialized?
Defined at line 130 of file llvm/include/llvm/Support/TimeProfiler.h
-
uint64_t writeMemProfCallStacks (ProfOStream & OS, llvm::MapVector<memprof::CallStackId, llvm::SmallVector<memprof::FrameId>> & MemProfCallStackData)Defined at line 130 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
uint64_t decodeULEB128 (const uint8_t * p, unsigned int * n, const uint8_t * end, const char ** error)Utility function to decode a ULEB128 value.
If
is non-null, it will point to a static error message,
if an error occured. It will not be modified on success.
Defined at line 130 of file llvm/include/llvm/Support/LEB128.h
-
inst_range instructions (Function * F)Defined at line 131 of file llvm/include/llvm/IR/InstIterator.h
-
bool operator!= (const VersionTuple & X, const VersionTuple & Y)Determine if two version numbers are not equivalent.
If not provided, minor and subminor version numbers are considered to be
zero.
Defined at line 131 of file llvm/include/llvm/Support/VersionTuple.h
-
FastMathFlags operator& (FastMathFlags LHS, FastMathFlags RHS)Defined at line 131 of file llvm/include/llvm/IR/FMF.h
-
PerfInputFile getPerfInputFile ()Defined at line 131 of file llvm/tools/llvm-profgen/llvm-profgen.cpp
-
StringRef getInstrProfCountersVarPrefix ()Return the name prefix of profile counter variables.
Defined at line 132 of file llvm/include/llvm/ProfileData/InstrProf.h
-
raw_ostream & operator<< (raw_ostream & OS, const DanglingDebugInfo::Print & P)Defined at line 132 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
-
void initializeMachineCombinerPass (PassRegistry & )Defined at line 134 of file llvm/lib/CodeGen/MachineCombiner.cpp
-
void initializeMachineRegionInfoPassPass (PassRegistry & )Defined at line 138 of file llvm/lib/CodeGen/MachineRegionInfo.cpp
-
AllocaInst * DemotePHIToStack (PHINode * P, optional AllocaPoint)DemotePHIToStack - This function takes a virtual register computed by a PHI
node and replaces it with a slot in the stack frame allocated via alloca.
The PHI node is deleted. It returns the pointer to the alloca inserted.
Defined at line 132 of file llvm/lib/Transforms/Utils/DemoteRegToStack.cpp
-
uint64_t get_threadid ()Return the current thread id, as used in various OS system calls.
Note that not all platforms guarantee that the value returned will be
unique across the entire system, so portable code should not assume
this.
Defined at line 128 of file llvm/lib/Support/Unix/Threading.inc
-
void initializeX86CallFrameOptimizationPass (PassRegistry & )Defined at line 129 of file llvm/lib/Target/X86/X86CallFrameOptimization.cpp
-
void initializeRegAllocScoringPass (PassRegistry & )Defined at line 129 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
-
bool hasDiscriminator (uint32_t Flags)Defined at line 133 of file llvm/include/llvm/IR/PseudoProbe.h
-
bool isReleaseOrStronger (AtomicOrdering AO)Defined at line 133 of file llvm/include/llvm/Support/AtomicOrdering.h
-
const_inst_iterator inst_begin (const Function * F)Defined at line 134 of file llvm/include/llvm/IR/InstIterator.h
-
bool isAligned (Align Lhs, uint64_t SizeInBytes)Checks that SizeInBytes is a multiple of the alignment.
Defined at line 134 of file llvm/include/llvm/Support/Alignment.h
-
void initializeSpeculativeExecutionLegacyPassPass (PassRegistry & )Defined at line 135 of file llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
-
bool convertUTF16ToUTF8String (ArrayRef<UTF16> Src, std::string & Out)Converts a UTF16 string into a UTF8 std::string.
Parameters
Src [in] A buffer of UTF-16 encoded text.Out [out] Converted UTF-8 is stored here on success.Defined at line 134 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
StringRef getInstrProfBitmapVarPrefix ()Return the name prefix of profile bitmap variables.
Defined at line 135 of file llvm/include/llvm/ProfileData/InstrProf.h
-
RetainedKnowledge getKnowledgeFromUseInAssume (const Use * U)Retreive the information help by the Use U of an llvm.assume. the use should
be in the operand bundle.
Defined at line 135 of file llvm/include/llvm/Analysis/AssumeBundleQueries.h
-
template <class GraphType>iterator_range<typename GraphTraits<GraphType>::nodes_iterator> nodes (const GraphType & G)Provide iterator ranges for the graph traits nodes and children
Defined at line 135 of file llvm/include/llvm/ADT/GraphTraits.h
-
raw_ostream & operator<< (raw_ostream & O, FastMathFlags FMF)Defined at line 136 of file llvm/include/llvm/IR/FMF.h
-
const MachineInstrBuilder & addOffset (const MachineInstrBuilder & MIB, int Offset)Defined at line 136 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
hash_code hash_value (const FixedPointSemantics & Val)Defined at line 137 of file llvm/include/llvm/ADT/APFixedPoint.h
-
const_inst_iterator inst_end (const Function * F)Defined at line 137 of file llvm/include/llvm/IR/InstIterator.h
-
StringRef getInstrProfValuesVarPrefix ()Return the name prefix of value profile variables.
Defined at line 138 of file llvm/include/llvm/ProfileData/InstrProf.h
-
void initializeShadowStackGCLoweringPass (PassRegistry & )Defined at line 139 of file llvm/lib/CodeGen/ShadowStackGCLowering.cpp
-
bool isAddrAligned (Align Lhs, const void * Addr)Checks that Addr is a multiple of the alignment.
Defined at line 139 of file llvm/include/llvm/Support/Alignment.h
-
int jit_noop ()Defined at line 139 of file llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp
-
bool isPrint (char C)Checks whether character
is printable.
Locale-independent version of the C standard library isprint whose results
may differ on different platforms.
Defined at line 139 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator< (const VersionTuple & X, const VersionTuple & Y)Determine whether one version number precedes another.
If not provided, minor and subminor version numbers are considered to be
zero.
Defined at line 139 of file llvm/include/llvm/Support/VersionTuple.h
-
DerivedT operator+ (DifferenceTypeT n, const DerivedT & i)Defined at line 139 of file llvm/include/llvm/ADT/iterator.h
-
AtomicOrdering getMergedAtomicOrdering (AtomicOrdering AO, AtomicOrdering Other)Return a single atomic ordering that is at least as strong as both the
and
orderings for an atomic operation.
Defined at line 139 of file llvm/include/llvm/Support/AtomicOrdering.h
-
bool isGlobalRelativeToPICBase (unsigned char TargetFlag)isGlobalRelativeToPICBase - Return true if the specified global value
reference is relative to a 32-bit PIC base (X86ISD::GlobalBaseReg). If this
is true, the addressing mode has the PIC base register added in (e.g. EBX).
Defined at line 139 of file llvm/lib/Target/X86/X86InstrInfo.h
-
const_inst_range instructions (const Function * F)Defined at line 140 of file llvm/include/llvm/IR/InstIterator.h
-
template <class S1Ty, class S2Ty>void set_subtract (S1Ty & S1, const S2Ty & S2, S1Ty & Removed, S1Ty & Remaining)set_subtract(A, B, C, D) - Compute A := A - B, set C to the elements of B
removed from A (A ^ B), and D to the elements of B not found in and removed
from A (B - A).
Defined at line 140 of file llvm/include/llvm/ADT/SetOperations.h
-
bool InitializeNativeTargetAsmPrinter ()InitializeNativeTargetAsmPrinter - The main program should call
this function to initialize the native target asm printer.
Defined at line 140 of file llvm/include/llvm/Support/TargetSelect.h
-
StringRef getInstrProfVNodesVarName ()Return the name of value profile node array variables:
Defined at line 141 of file llvm/include/llvm/ProfileData/InstrProf.h
-
const MachineInstrBuilder & addOffset (const MachineInstrBuilder & MIB, const MachineOperand & Offset)Defined at line 141 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
template <class GraphType>iterator_range<typename GraphTraits<Inverse<GraphType>>::nodes_iterator> inverse_nodes (const GraphType & G)Defined at line 141 of file llvm/include/llvm/ADT/GraphTraits.h
-
void initializeRegToMemWrapperPassPass (PassRegistry & )Defined at line 142 of file llvm/lib/Transforms/Scalar/Reg2Mem.cpp
-
bool convertUTF32ToUTF8String (ArrayRef SrcBytes, std::string & Out)Converts a stream of raw bytes assumed to be UTF32 into a UTF8 std::string.
Parameters
SrcBytes [in] A buffer of what is assumed to be UTF-32 encoded text.Out [out] Converted UTF-8 is stored here on success.Defined at line 141 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
template <typename BasicBlockT>basic_string SimpleNodeLabelString (const BasicBlockT * Node)Defined at line 142 of file llvm/include/llvm/Analysis/CFGPrinter.h
-
inst_iterator inst_begin (Function & F)Defined at line 143 of file llvm/include/llvm/IR/InstIterator.h
-
bool isLifetimeIntrinsic (Intrinsic::ID ID)Check if
corresponds to a lifetime intrinsic.
Defined at line 143 of file llvm/include/llvm/IR/IntrinsicInst.h
-
template <class Ptr>auto to_address (const Ptr & P)Returns a raw pointer that represents the same address as the argument.
This implementation can be removed once we move to C++20 where it's defined
as std::to_address().
The std::pointer_traits
<
>::to_address(p) variations of these overloads has
not been implemented.
Defined at line 144 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
inst_iterator inst_end (Function & F)Defined at line 144 of file llvm/include/llvm/IR/InstIterator.h
-
void initializePseudoProbeInserterPass (PassRegistry & )Defined at line 144 of file llvm/lib/CodeGen/PseudoProbeInserter.cpp
-
uint64_t alignTo (uint64_t Size, Align A)Returns a multiple of A needed to store `Size` bytes.
Defined at line 144 of file llvm/include/llvm/Support/Alignment.h
-
DenseMap writeMemProfCallStackArray (ProfOStream & OS, llvm::MapVector<memprof::CallStackId, llvm::SmallVector<memprof::FrameId>> & MemProfCallStackData, llvm::DenseMap<memprof::FrameId, memprof::LinearFrameId> & MemProfFrameIndexes, llvm::DenseMap<memprof::FrameId, memprof::FrameStat> & FrameHistogram, unsigned int & NumElements)Defined at line 144 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
StringRef getInstrProfNamesVarName ()Return the name of the variable holding the strings (possibly compressed)
of all function's PGO names.
Defined at line 145 of file llvm/include/llvm/ProfileData/InstrProf.h
-
inst_range instructions (Function & F)Defined at line 145 of file llvm/include/llvm/IR/InstIterator.h
-
template <class T>T * to_address (T * P)Defined at line 145 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
void swap (CachedHashString & LHS, CachedHashString & RHS)Defined at line 145 of file llvm/include/llvm/ADT/CachedHashString.h
-
StringRef getInstrProfVTableNamesVarName ()Defined at line 147 of file llvm/include/llvm/ProfileData/InstrProf.h
-
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>bool has_single_bit (T Value)Defined at line 147 of file llvm/include/llvm/ADT/bit.h
-
FunctionPass * createMachineRegionInfoPass ()Defined at line 147 of file llvm/lib/CodeGen/MachineRegionInfo.cpp
-
AtomicOrderingCABI toCABI (AtomicOrdering AO)Defined at line 147 of file llvm/include/llvm/Support/AtomicOrdering.h
-
template <class T>bf_iterator<T> bf_begin (const T & G)Provide global constructors that automatically figure out correct types.
Defined at line 148 of file llvm/include/llvm/ADT/BreadthFirstIterator.h
-
const_inst_iterator inst_begin (const Function & F)Defined at line 148 of file llvm/include/llvm/IR/InstIterator.h
-
bool operator> (const VersionTuple & X, const VersionTuple & Y)Determine whether one version number follows another.
If not provided, minor and subminor version numbers are considered to be
zero.
Defined at line 148 of file llvm/include/llvm/Support/VersionTuple.h
-
formatted_raw_ostream & fouts ()fouts() - This returns a reference to a formatted_raw_ostream for
standard output. Use it like: fouts()
<
<
"foo"
<
<
"bar";
Defined at line 148 of file llvm/lib/Support/FormattedStream.cpp
-
template <class GraphType>iterator_range<typename GraphTraits<GraphType>::ChildIteratorType> children (const typename GraphTraits<GraphType>::NodeRef & G)Defined at line 148 of file llvm/include/llvm/ADT/GraphTraits.h
-
void initializeFixupBWInstPassPass (PassRegistry & )Defined at line 149 of file llvm/lib/Target/X86/X86FixupBWInsts.cpp
-
bool isPunct (char C)Checks whether character
is a punctuation character.
Locale-independent version of the C standard library ispunct. The list of
punctuation characters can be found in the documentation of std::ispunct:
https://en.cppreference.com/w/cpp/string/byte/ispunct.
Defined at line 149 of file llvm/include/llvm/ADT/StringExtras.h
-
void maybeDecompress (const object::ObjectFile & Obj, StringRef SectionName, StringRef & SectionContent, SmallString<0> & Out)Defined at line 149 of file llvm/tools/llvm-readobj/ObjDumper.cpp
-
template <class NodeT, class RPOTraversalT, class LoopInfoT, class GT = GraphTraits<NodeT>>bool containsIrreducibleCFG (RPOTraversalT & RPOTraversal, const LoopInfoT & LI)Return true if the control flow in
is irreducible.
This is a generic implementation to detect CFG irreducibility based on loop
info analysis. It can be used for any kind of CFG (Loop, MachineLoop,
Function, MachineFunction, etc.) by providing an RPO traversal (
and the loop info analysis (
of the CFG. This utility
function is only recommended when loop info analysis is available. If loop
info analysis isn't available, please, don't compute it explicitly for this
purpose. There are more efficient ways to detect CFG irreducibility that
don't require recomputing loop info analysis (e.g., T1/T2 or Tarjan's
algorithm).
Requirements:
1) GraphTraits must be implemented for NodeT type. It is used to access
NodeT successors.
2)
must be a valid reverse post-order traversal of the
target CFG with begin()/end() iterator interfaces.
3)
must be a valid LoopInfoBase that contains up-to-date loop
analysis information of the CFG.
This algorithm uses the information about reducible loop back-edges already
computed in
When a back-edge is found during the RPO traversal, the
algorithm checks whether the back-edge is one of the reducible back-edges in
loop info. If it isn't, the CFG is irreducible. For example, for the CFG
below (canonical irreducible graph) loop info won't contain any loop, so the
algorithm will return that the CFG is irreducible when checking the B
<
-
-> C back-edge.
(A->B, A->C, B->C, C->B, C->D)
A
/
\
/// B
<
- ->C
|
D
Defined at line 149 of file llvm/include/llvm/Analysis/CFG.h
-
FormattedString left_justify (StringRef Str, unsigned int Width)left_justify - append spaces after string so total output is
characters. If
is larger that
full string
is written with no padding.
Defined at line 150 of file llvm/include/llvm/Support/Format.h
-
uint32_t Hi_32 (uint64_t Value)Return the high 32 bits of a 64 bit value.
Defined at line 150 of file llvm/include/llvm/Support/MathExtras.h
-
const MachineInstrBuilder & addRegOffset (const MachineInstrBuilder & MIB, Register Reg, bool isKill, int Offset)addRegOffset - This function is used to add a memory reference of the form
[Reg + Offset], i.e., one with no scale or index, but with a
displacement. An example is: DWORD PTR [EAX + 4].
Defined at line 150 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
Metadata * unwrap (LLVMMetadataRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 151 of file llvm/include/llvm/IR/Metadata.h
-
template <>T * unwrap (LLVMMetadataRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 151 of file llvm/include/llvm/IR/Metadata.h
-
LLVMMetadataRef wrap (const Metadata * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 151 of file llvm/include/llvm/IR/Metadata.h
-
const_inst_iterator inst_end (const Function & F)Defined at line 151 of file llvm/include/llvm/IR/InstIterator.h
-
FunctionPass * createLoopDataPrefetchPass ()===----------------------------------------------------------------------===//
LoopDataPrefetch - Perform data prefetching in loops.
Defined at line 151 of file llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
-
bool operator== (const AddressRangeValuePair & LHS, const AddressRangeValuePair & RHS)Defined at line 151 of file llvm/include/llvm/ADT/AddressRanges.h
-
template <>void printIRUnitNameForStackTrace<llvm::Module> (raw_ostream & OS, const Module & IR)Defined at line 151 of file llvm/lib/IR/PassManager.cpp
-
template <class S1Ty, class S2Ty>bool set_is_subset (const S1Ty & S1, const S2Ty & S2)set_is_subset(A, B) - Return true iff A in B
Defined at line 151 of file llvm/include/llvm/ADT/SetOperations.h
-
template <class T>bf_iterator<T> bf_end (const T & G)Defined at line 152 of file llvm/include/llvm/ADT/BreadthFirstIterator.h
-
StringRef getCoverageMappingVarName ()Return the name of a covarage mapping variable (internal linkage)
for each instrumented source module. Such variables are allocated
in the __llvm_covmap section.
Defined at line 152 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool isScale (const MachineOperand & MO)Defined at line 152 of file llvm/lib/Target/X86/X86InstrInfo.h
-
bool InitializeNativeTargetAsmParser ()InitializeNativeTargetAsmParser - The main program should call
this function to initialize the native target asm parser.
Defined at line 152 of file llvm/include/llvm/Support/TargetSelect.h
-
void initializePEILegacyPass (PassRegistry & )Defined at line 153 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp
-
Description getSubOpDesc (unsigned int Opcode, unsigned int SubOpcode)Defined at line 153 of file llvm/lib/DebugInfo/DWARF/LowLevel/DWARFExpression.cpp
-
RTDyldMemoryManager * unwrap (LLVMMCJITMemoryManagerRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 154 of file llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
-
LLVMMCJITMemoryManagerRef wrap (const RTDyldMemoryManager * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 154 of file llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h
-
const_inst_range instructions (const Function & F)Defined at line 154 of file llvm/include/llvm/IR/InstIterator.h
-
Metadata ** unwrap (LLVMMetadataRef * MDs)Specialized opaque metadata conversions.
Defined at line 154 of file llvm/include/llvm/IR/Metadata.h
-
void * SearchForAddressOfSpecialSymbol (const char * SymbolName)Defined at line 154 of file llvm/lib/Support/DynamicLibrary.cpp
-
template <std::size_t Index, typename ValueTy>decltype(auto) get (StringMapEntry<ValueTy> & E)Allow structured bindings on StringMapEntry.
Defined at line 154 of file llvm/include/llvm/ADT/StringMapEntry.h
-
template <typename T>int popcount (T Value)Count the number of set bits in a value.
Ex. popcount(0xF000F000) = 8
Returns 0 if Value is zero.
Defined at line 154 of file llvm/include/llvm/ADT/bit.h
-
template <typename BasicBlockT>basic_string CompleteNodeLabelString (const BasicBlockT * Node, function_ref<void (raw_string_ostream &, const BasicBlockT &)> HandleBasicBlock, function_ref HandleComment)Defined at line 154 of file llvm/include/llvm/Analysis/CFGPrinter.h
-
void initializeOptimizationRemarkEmitterWrapperPassPass (PassRegistry & )Defined at line 155 of file llvm/lib/Analysis/OptimizationRemarkEmitter.cpp
-
uint32_t Lo_32 (uint64_t Value)Return the low 32 bits of a 64 bit value.
Defined at line 155 of file llvm/include/llvm/Support/MathExtras.h
-
formatted_raw_ostream & ferrs ()ferrs() - This returns a reference to a formatted_raw_ostream for
standard error. Use it like: ferrs()
<
<
"foo"
<
<
"bar";
Defined at line 155 of file llvm/lib/Support/FormattedStream.cpp
-
void initializeFixupLEAPassPass (PassRegistry & )Defined at line 155 of file llvm/lib/Target/X86/X86FixupLEAs.cpp
-
template <class GraphType>iterator_range<typename GraphTraits<Inverse<GraphType>>::ChildIteratorType> inverse_children (const typename GraphTraits<GraphType>::NodeRef & G)Defined at line 155 of file llvm/include/llvm/ADT/GraphTraits.h
-
Instruction * getInstructionByName (Function & F, StringRef Name)Defined at line 155 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp
-
bool skipProfileForFunction (const Function & F)Defined at line 156 of file llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
-
template <class T>bool isEmbeddedModelEvaluatorValid ()Defined at line 157 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
-
template <class T>iterator_range<bf_iterator<T>> breadth_first (const T & G)Provide an accessor method to use them in range-based patterns.
Defined at line 157 of file llvm/include/llvm/ADT/BreadthFirstIterator.h
-
FormattedString right_justify (StringRef Str, unsigned int Width)right_justify - add spaces before string so total output is
characters. If
is larger that
full string
is written with no padding.
Defined at line 157 of file llvm/include/llvm/Support/Format.h
-
bool operator<= (const VersionTuple & X, const VersionTuple & Y)Determine whether one version number precedes or is
equivalent to another.
If not provided, minor and subminor version numbers are considered to be
zero.
Defined at line 157 of file llvm/include/llvm/Support/VersionTuple.h
-
bool isLeaMem (const MachineInstr & MI, unsigned int Op)Defined at line 157 of file llvm/lib/Target/X86/X86InstrInfo.h
-
void CloneFunctionAttributesInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, bool ModuleLevelChanges, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer)Clone OldFunc's attributes into NewFunc, transforming values based on the
mappings in VMap.
Defined at line 157 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
template <>void printIRUnitNameForStackTrace<llvm::Function> (raw_ostream & OS, const Function & IR)Defined at line 157 of file llvm/lib/IR/PassManager.cpp
-
MachineFunctionPass * createPrologEpilogInserterPass ()Defined at line 157 of file llvm/lib/CodeGen/PrologEpilogInserter.cpp
-
bool isSpace (char C)Checks whether character
is whitespace in the "C" locale.
Locale-independent version of the C standard library isspace.
Defined at line 158 of file llvm/include/llvm/ADT/StringExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AliasSet & AS)Defined at line 158 of file llvm/include/llvm/Analysis/AliasSetTracker.h
-
FeatureIndex inlineCostFeatureToMlFeature (InlineCostFeatureIndex Feature)clang-format on
Defined at line 158 of file llvm/include/llvm/Analysis/InlineModelFeatureMaps.h
-
template <typename Optional, typename Function, typename Value = typename llvm::remove_cvref_t<Optional>::value_type>std::optional<std::invoke_result_t<Function, Value>> transformOptional (Optional && O, Function && F)TODO: Remove this in favor of std::optional
<T
>::transform once we switch to
C++23.
Defined at line 158 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
template <typename Optional, typename Function, typename Value>int transformOptional (Optional && O, Function && F)TODO: Remove this in favor of std::optional
<T
>::transform once we switch to
C++23.
Defined at line 158 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
const MachineInstrBuilder & addRegReg (const MachineInstrBuilder & MIB, Register Reg1, bool isKill1, unsigned int SubReg1, Register Reg2, bool isKill2, unsigned int SubReg2)addRegReg - This function is used to add a memory reference of the form:
[Reg + Reg].
Defined at line 158 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
template <>bool isEmbeddedModelEvaluatorValid<llvm::NoopSavedModelImpl> ()Defined at line 159 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
-
bool isEmbeddedModelEvaluatorValid ()Defined at line 159 of file llvm/include/llvm/Analysis/ReleaseModeModelRunner.h
-
StringRef getCoverageUnusedNamesVarName ()Return the name of the internal variable recording the array
of PGO name vars referenced by the coverage mapping. The owning
functions of those names are not emitted by FE (e.g, unused inline
functions.)
Defined at line 160 of file llvm/include/llvm/ProfileData/InstrProf.h
-
uint64_t Make_64 (uint32_t High, uint32_t Low)Make a 64-bit integer from a high / low pair of 32-bit integers.
Defined at line 160 of file llvm/include/llvm/Support/MathExtras.h
-
void buildTopDownFuncOrder (LazyCallGraph & CG, int & FunctionOrderList)Defined at line 160 of file llvm/include/llvm/Transforms/Utils/SampleProfileLoaderBaseImpl.h
-
ConversionResult ConvertUTF32toUTF16 (const UTF32 ** sourceStart, const UTF32 * sourceEnd, UTF16 ** targetStart, UTF16 * targetEnd, ConversionFlags flags)---------------------------------------------------------------------
Defined at line 160 of file llvm/lib/Support/ConvertUTF.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAIsDead & AA)Defined at line 162 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
formatted_raw_ostream & fdbgs ()fdbgs() - This returns a reference to a formatted_raw_ostream for
debug output. Use it like: fdbgs()
<
<
"foo"
<
<
"bar";
Defined at line 162 of file llvm/lib/Support/FormattedStream.cpp
-
void initializeStackProtectorPass (PassRegistry & )Defined at line 161 of file llvm/lib/CodeGen/StackProtector.cpp
-
bool operator== (const fallible_iterator<Underlying> & LHS, const fallible_iterator<Underlying> & RHS)Compare fallible iterators for equality.
Returns true if both LHS and RHS are end-of-range values, or if both are
non-end-of-range values whose underlying iterator values compare equal.
If this is a comparison between an end-of-range iterator and a
non-end-of-range iterator, then the Error (referenced by the
non-end-of-range value) is marked as checked: Since all
increment/decrement operations result in an end-of-range value, comparing
false against end-of-range is equivalent to checking that the Error value
is success. This flag management enables early returns from loop bodies
without redundant Error checks.
Defined at line 161 of file llvm/include/llvm/ADT/fallible_iterator.h
-
void initializeNaryReassociateLegacyPassPass (PassRegistry & )Defined at line 162 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp
-
void initializeSCEVAAWrapperPassPass (PassRegistry & )Defined at line 162 of file llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
-
template <class GraphType>iterator_range<typename GraphTraits<GraphType>::ChildEdgeIteratorType> children_edges (const typename GraphTraits<GraphType>::NodeRef & G)Defined at line 162 of file llvm/include/llvm/ADT/GraphTraits.h
-
Value * getArgByName (Function & F, StringRef Name)Defined at line 162 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoUnwind & AA)Defined at line 163 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <std::size_t Index, typename ValueTy>decltype(auto) get (const StringMapEntry<ValueTy> & E)Defined at line 163 of file llvm/include/llvm/ADT/StringMapEntry.h
-
const Metadata * get_hashable_data (const MDOperand & X)Make MDOperand transparent for hashing.
This overload of an implementation detail of the hashing library makes
MDOperand hash to the same value as a
pointer.
Note that overloading
as follows:
does not cause MDOperand to be transparent. In particular, a bare pointer
doesn't get hashed before it's combined, whereas
would.
Code
size_t hash_value(const MDOperand &X) { return hash_value(X.get()); }Defined at line 164 of file llvm/lib/IR/LLVMContextImpl.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoSync & AA)Defined at line 164 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
FormattedString center_justify (StringRef Str, unsigned int Width)center_justify - add spaces before and after string so total output is
characters. If
is larger that
full string
is written with no padding.
Defined at line 164 of file llvm/include/llvm/Support/Format.h
-
char toLower (char x)Returns the corresponding lowercase character if
is uppercase.
Defined at line 164 of file llvm/include/llvm/ADT/StringExtras.h
-
bool InitializeNativeTargetDisassembler ()InitializeNativeTargetDisassembler - The main program should call
this function to initialize the native target disassembler.
Defined at line 164 of file llvm/include/llvm/Support/TargetSelect.h
-
int64_t decodeSLEB128 (const uint8_t * p, unsigned int * n, const uint8_t * end, const char ** error)Utility function to decode a SLEB128 value.
If
is non-null, it will point to a static error message,
if an error occured. It will not be modified on success.
Defined at line 164 of file llvm/include/llvm/Support/LEB128.h
-
raw_ostream & operator<< (raw_ostream & OS, const AANoRecurse & AA)Defined at line 165 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
FunctionPass * createNaryReassociatePass ()===----------------------------------------------------------------------===//
NaryReassociate - Simplify n-ary operations by reassociation.
Defined at line 165 of file llvm/lib/Transforms/Scalar/NaryReassociate.cpp
-
int phys_regs_and_masks (const MachineInstr & MI)Returns an iterator range over all physical register and mask operands for
and bundled instructions. This also skips any debug operands.
Defined at line 165 of file llvm/include/llvm/CodeGen/LiveRegUnits.h
-
template <unsigned N>bool isInt (int64_t x)Checks if an integer fits into the given bit width.
Defined at line 165 of file llvm/include/llvm/Support/MathExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AANonConvergent & AA)Defined at line 166 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <typename EnumTy1, typename EnumTy2, typename = std::enable_if_t<std::is_enum_v<EnumTy1> && std::is_enum_v<EnumTy2>>>auto addEnumValues (EnumTy1 LHS, EnumTy2 RHS)Helper which adds two underlying types of enumeration type.
Implicit conversion to a common type is accepted.
Defined at line 166 of file llvm/include/llvm/ADT/STLExtras.h
-
bool operator>= (const VersionTuple & X, const VersionTuple & Y)Determine whether one version number follows or is
equivalent to another.
If not provided, minor and subminor version numbers are considered to be
zero.
Defined at line 166 of file llvm/include/llvm/Support/VersionTuple.h
-
ThreadPoolStrategy heavyweight_hardware_concurrency (unsigned int ThreadCount)Returns a thread strategy for tasks requiring significant memory or other
resources. To be used for workloads where hardware_concurrency() proves to
be less efficient. Avoid this strategy if doing lots of I/O. Currently
based on physical cores, if available for the host system, otherwise falls
back to hardware_concurrency(). Returns 1 when LLVM is configured with
LLVM_ENABLE_THREADS = OFF.
Defined at line 166 of file llvm/include/llvm/Support/Threading.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAWillReturn & AA)Defined at line 167 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
hash_code hash_value (const Expression & Value)Defined at line 167 of file llvm/lib/Transforms/Scalar/GVN.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const BitVector & V)Defined at line 167 of file llvm/include/llvm/Analysis/StackLifetime.h
-
void initializeMachineCSELegacyPass (PassRegistry & )Defined at line 168 of file llvm/lib/CodeGen/MachineCSE.cpp
-
void initializeMachineModuleInfoWrapperPassPass (PassRegistry & )Handle the Pass registration stuff necessary to use DataLayout's.
Defined at line 166 of file llvm/lib/CodeGen/MachineModuleInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoReturn & AA)Defined at line 168 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
bool isDbgInfoIntrinsic (Intrinsic::ID ID)Check if
corresponds to a debug info intrinsic.
Defined at line 168 of file llvm/include/llvm/IR/IntrinsicInst.h
-
const MachineInstrBuilder & addFullAddress (const MachineInstrBuilder & MIB, const X86AddressMode & AM)Defined at line 168 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
raw_ostream & operator<< (raw_ostream & OS, const AANonNull & AA)Defined at line 169 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <typename Enum>std::underlying_type_t<Enum> to_underlying (Enum E)Returns underlying integer value of an enum. Backport of C++23
std::to_underlying.
Defined at line 169 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
template <typename Enum>int to_underlying (Enum E)Returns underlying integer value of an enum. Backport of C++23
std::to_underlying.
Defined at line 169 of file llvm/include/llvm/ADT/STLForwardCompat.h
-
StringRef getInstrProfRegFuncsName ()Return the name of function that registers all the per-function control
data at program startup time by calling __llvm_register_function. This
function has internal linkage and is called by __llvm_profile_init
runtime method. This function is not generated for these platforms:
Darwin, Linux, and FreeBSD.
Defined at line 169 of file llvm/include/llvm/ProfileData/InstrProf.h
-
uint64_t alignTo (uint64_t Size, Align A, uint64_t Skew)If non-zero
is specified, the return value will be a minimal integer
that is greater than or equal to
and equal to
* N +
for
some integer N. If
is larger than
its value is adjusted to '
mod
Examples:
Code
alignTo(5, Align(8), 7) = 7 alignTo(17, Align(8), 1) = 17 alignTo(~0LL, Align(8), 3) = 3Defined at line 169 of file llvm/include/llvm/Support/Alignment.h
-
template <class NodeT>raw_ostream & operator<< (raw_ostream & O, const DomTreeNodeBase<NodeT> * Node)Defined at line 169 of file llvm/include/llvm/Support/GenericDomTree.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAMustProgress & AA)Defined at line 170 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
hash_code hash_value (const VersionTuple & VT)Defined at line 170 of file llvm/include/llvm/Support/VersionTuple.h
-
bool isMem (const MachineInstr & MI, unsigned int Op)Defined at line 170 of file llvm/lib/Target/X86/X86InstrInfo.h
-
raw_ostream & operator<< (raw_ostream & OS, const AANoAlias & AA)Defined at line 171 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const Metadata & MD)Defined at line 171 of file llvm/include/llvm/IR/Metadata.h
-
char toUpper (char x)Returns the corresponding uppercase character if
is lowercase.
Defined at line 171 of file llvm/include/llvm/ADT/StringExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AADereferenceable & AA)Defined at line 172 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
uint64_t calculateCountScale (uint64_t MaxCount)Calculate what to divide by to scale counts.
Given the maximum count, calculate a divisor that will scale all the
weights to strictly less than std::numeric_limits
<uint32
_t>::max().
Defined at line 172 of file llvm/include/llvm/IR/ProfDataUtils.h
-
Error getOffset (const SymbolRef & Sym, SectionRef Sec, uint64_t & Result)Defined at line 172 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAAlign & AA)Defined at line 173 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
int gep_type_begin (const User * GEP)Defined at line 173 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAInstanceInfo & AA)Defined at line 174 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
bool operator== (const ilist_iterator<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator<OptionsT, IsReverse, IsConst> & RHS)Comparison operators
Defined at line 174 of file llvm/include/llvm/ADT/ilist_iterator.h
-
template <class S1Ty, class S2Ty>bool set_intersects (const S1Ty & S1, const S2Ty & S2)set_intersects(A, B) - Return true iff A ^ B is non empty
Defined at line 174 of file llvm/include/llvm/ADT/SetOperations.h
-
raw_ostream & operator<< (raw_ostream & OS, const AANoCapture & AA)Defined at line 175 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
StringRef getInstrProfRegFuncName ()Return the name of the runtime interface that registers per-function control
data for one instrumented function.
Defined at line 175 of file llvm/include/llvm/ProfileData/InstrProf.h
-
template <typename HasherT, llvm::endianness Endianness>void addHash (HashBuilder<HasherT, Endianness> & HBuilder, const VersionTuple & VT)Defined at line 175 of file llvm/include/llvm/Support/VersionTuple.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAValueSimplify & AA)Defined at line 176 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
FunctionPass * createX86SpeculativeExecutionSideEffectSuppression ()Defined at line 176 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp
-
uintptr_t alignAddr (const void * Addr, Align Alignment)Aligns `Addr` to `Alignment` bytes, rounding up.
Defined at line 176 of file llvm/include/llvm/Support/Alignment.h
-
FPClassTest invertFPClassTestIfSimpler (FPClassTest Test, bool UseFCmp)Evaluates if the specified FP class test is better performed as the inverse
(i.e. fewer instructions should be required to lower it). An example is the
test "inf|normal|subnormal|zero", which is an inversion of "nan".
Parameters
Test The test as specified in 'is_fpclass' intrinsic invocation.UseFCmp The intention is to perform the comparison using floating-point compare instructions which check for nan.Defined at line 176 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp
-
PreservedAnalyses getMachineFunctionPassPreservedAnalyses ()Returns the minimum set of Analyses that all machine function passes must
preserve.
Defined at line 162 of file llvm/lib/CodeGen/MachinePassManager.cpp
-
bool operator!= (const ilist_iterator<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator<OptionsT, IsReverse, IsConst> & RHS)Defined at line 177 of file llvm/include/llvm/ADT/ilist_iterator.h
-
basic_string utohexstr (uint64_t X, bool LowerCase, unsigned int Width)Defined at line 177 of file llvm/include/llvm/ADT/StringExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAHeapToStack & AA)Defined at line 178 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAIntraFnReachability & AA)Defined at line 179 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
void initializeX86SpeculativeExecutionSideEffectSuppressionPass (PassRegistry & )Defined at line 180 of file llvm/lib/Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp
-
void initializeRegionInfoPassPass (PassRegistry & )Defined at line 166 of file llvm/lib/Analysis/RegionInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoFree & AA)Defined at line 177 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
void InitializeAllTargetMCAs ()InitializeAllTargetMCAs - The main program should call
this function to initialize the target CustomBehaviour and
InstrPostProcess classes.
Defined at line 177 of file llvm/include/llvm/Support/TargetSelect.h
-
void reportVectorizationFailure (StringRef DebugMsg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I)Same as above, but the debug message and optimization remark are identical
Defined at line 177 of file llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
-
bool isAddMemInstrWithRelocation (const MachineInstr & MI)Defined at line 177 of file llvm/lib/Target/X86/X86InstrInfo.h
-
uint32_t get_max_thread_name_length ()Get the maximum length of a thread name on this platform.
A value of 0 means there is no limit.
Defined at line 179 of file llvm/lib/Support/Unix/Threading.inc
-
void initializePlaceBackedgeSafepointsLegacyPassPass (PassRegistry & )Defined at line 172 of file llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
-
ThreadPoolStrategy heavyweight_hardware_concurrency (StringRef Num)Like heavyweight_hardware_concurrency() above, but builds a strategy
based on the rules described for get_threadpool_strategy().
If
is invalid, returns a default strategy where one thread per
hardware core is used.
Defined at line 178 of file llvm/include/llvm/Support/Threading.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAMemoryBehavior & AA)Defined at line 180 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
int gep_type_end (const User * GEP)Defined at line 180 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAMemoryLocation & AA)Defined at line 181 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
StringRef getInstrProfNamesRegFuncName ()Return the name of the runtime interface that registers the PGO name
strings.
Defined at line 181 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool replaceSignedInst (SCCPSolver & Solver, SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)Try to replace signed instructions with their unsigned equivalent.
Defined at line 181 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp
-
void initializePostDomPrinterWrapperPassPass (PassRegistry & )Defined at line 182 of file llvm/lib/Analysis/DomPrinter.cpp
-
void initializeRegionPrinterPass (PassRegistry & )Defined at line 182 of file llvm/lib/Analysis/RegionPrinter.cpp
-
void initializeScopedNoAliasAAWrapperPassPass (PassRegistry & )Defined at line 166 of file llvm/lib/Analysis/ScopedNoAliasAA.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAValueConstantRange & AA)Defined at line 182 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
uint32_t scaleBranchCount (uint64_t Count, uint64_t Scale)Scale an individual branch count.
Scale a 64-bit weight down to 32-bits using
Defined at line 182 of file llvm/include/llvm/IR/ProfDataUtils.h
-
template <unsigned N, unsigned S>bool isShiftedInt (int64_t x)Checks if a signed integer is an N bit number shifted left by S.
Defined at line 182 of file llvm/include/llvm/Support/MathExtras.h
-
template <class NodeT>void PrintDomTree (const DomTreeNodeBase<NodeT> * N, raw_ostream & O, unsigned int Lev)Defined at line 182 of file llvm/include/llvm/Support/GenericDomTree.h
-
void error (Twine Msg)Defined at line 182 of file llvm/tools/llvm-readobj/llvm-readobj.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAPrivatizablePtr & AA)Defined at line 183 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
void initializeMachineBlockFrequencyInfoWrapperPassPass (PassRegistry & )Defined at line 184 of file llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
-
void set_thread_name (const Twine & Name)Set the name of the current thread. Setting a thread's name can
be helpful for enabling useful diagnostics under a debugger or when
logging. The level of support for setting a thread's name varies
wildly across operating systems, and we only make a best effort to
perform the operation on supported platforms. No indication of success
or failure is returned.
Defined at line 183 of file llvm/lib/Support/Unix/Threading.inc
-
raw_ostream & operator<< (raw_ostream & OS, const AAUndefinedBehavior & AA)Defined at line 184 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, DenormalMode Mode)Defined at line 184 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
raw_ostream & operator<< (raw_ostream & OS, const LivePhysRegs & LR)Defined at line 184 of file llvm/include/llvm/CodeGen/LivePhysRegs.h
-
bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 184 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
int gep_type_begin (const User & GEP)Defined at line 184 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
void initializeRegionOnlyPrinterPass (PassRegistry & )Defined at line 185 of file llvm/lib/Analysis/RegionPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAPotentialConstantValues & AA)Defined at line 185 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
Error writeMemProfV2 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema)Write out MemProf Version2 as follows:
uint64_t Version
uint64_t RecordTableOffset = RecordTableGenerator.Emit
uint64_t FramePayloadOffset = Offset for the frame payload
uint64_t FrameTableOffset = FrameTableGenerator.Emit
uint64_t CallStackPayloadOffset = Offset for the call stack payload (NEW V2)
uint64_t CallStackTableOffset = CallStackTableGenerator.Emit (NEW in V2)
uint64_t Num schema entries
uint64_t Schema entry 0
uint64_t Schema entry 1
....
uint64_t Schema entry N - 1
OnDiskChainedHashTable MemProfRecordData
OnDiskChainedHashTable MemProfFrameData
OnDiskChainedHashTable MemProfCallStackData (NEW in V2)
Defined at line 185 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAPotentialValues & AA)Defined at line 186 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
uint64_t offsetToAlignment (uint64_t Value, Align Alignment)Returns the offset to the next integer (mod 2**64) that is greater than
or equal to
and is a multiple of
Defined at line 186 of file llvm/include/llvm/Support/Alignment.h
-
void initializeStaticDataProfileInfoWrapperPassPass (PassRegistry & )Defined at line 187 of file llvm/lib/Analysis/StaticDataProfileInfo.cpp
-
void initializePostDomOnlyPrinterWrapperPassPass (PassRegistry & )Defined at line 187 of file llvm/lib/Analysis/DomPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoUndef & AA)Defined at line 187 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoFPClass & AA)Defined at line 188 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
bool operator!= (const fallible_iterator<Underlying> & LHS, const fallible_iterator<Underlying> & RHS)Compare fallible iterators for inequality.
See notes for operator==.
Defined at line 188 of file llvm/include/llvm/ADT/fallible_iterator.h
-
bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const const_instr_iterator & R)Defined at line 188 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <typename T>int countr_zero_constexpr (T Val)Count number of 0's from the least significant bit to the most
stopping at the first 1.
A constexpr version of countr_zero.
Only unsigned integral types are allowed.
Returns std::numeric_limits
<T
>::digits on an input of 0.
Defined at line 188 of file llvm/include/llvm/ADT/bit.h
-
optional getStringFnAttrAsInt (const Attribute & Attr)Defined at line 188 of file llvm/lib/Analysis/InlineCost.cpp
-
StringRef getInstrProfInitFuncName ()Return the name of the runtime initialization method that is generated by
the compiler. The function calls __llvm_profile_register_functions and
__llvm_profile_override_default_filename functions if needed. This function
has internal linkage and invoked at startup time via init_array.
Defined at line 189 of file llvm/include/llvm/ProfileData/InstrProf.h
-
raw_ostream & operator<< (raw_ostream & OS, const AACallEdges & AA)Defined at line 189 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
void initializePostInlineEntryExitInstrumenterPass (PassRegistry & )Defined at line 189 of file llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const VirtRegMap & VRM)Defined at line 189 of file llvm/include/llvm/CodeGen/VirtRegMap.h
-
template <unsigned N>bool isUInt (uint64_t x)Checks if an unsigned integer fits into the given bit width.
Defined at line 189 of file llvm/include/llvm/Support/MathExtras.h
-
void initializeRegionViewerPass (PassRegistry & )Defined at line 190 of file llvm/lib/Analysis/RegionPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAInterFnReachability & AA)Defined at line 190 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
ThreadPoolStrategy hardware_concurrency (unsigned int ThreadCount)Returns a default thread strategy where all available hardware resources
are to be used, except for those initially excluded by an affinity mask.
This function takes affinity into consideration. Returns 1 when LLVM is
configured with LLVM_ENABLE_THREADS=OFF.
Defined at line 190 of file llvm/include/llvm/Support/Threading.h
-
DenormalModeKind parseDenormalFPAttributeComponent (StringRef Str)Parse the expected names from the denormal-fp-math attribute.
Defined at line 190 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
bool isMemInstrWithGOTPCREL (const MachineInstr & MI)Defined at line 190 of file llvm/lib/Target/X86/X86InstrInfo.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAPointerInfo & AA)Defined at line 191 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
int gep_type_end (const User & GEP)Defined at line 191 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
FormattedNumber format_hex (uint64_t N, unsigned int Width, bool Upper)format_hex - Output
as a fixed width hexadecimal. If number will not
fit in width, full number is still printed. Examples:
OS
<
<
format_hex(255, 4) => 0xff
OS
<
<
format_hex(255, 4, true) => 0xFF
OS
<
<
format_hex(255, 6) => 0x00ff
OS
<
<
format_hex(255, 2) => 0xff
Defined at line 191 of file llvm/include/llvm/Support/Format.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAAssumptionInfo & AA)Defined at line 192 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
uint64_t offsetToAlignedAddr (const void * Addr, Align Alignment)Returns the necessary adjustment for aligning `Addr` to `Alignment`
bytes, rounding up.
Defined at line 192 of file llvm/include/llvm/Support/Alignment.h
-
bool operator== (const const_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 192 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <class T>int po_begin (const T & G)Provide global constructors that automatically figure out correct types...
Defined at line 193 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>po_iterator<T> po_begin (const T & G)Provide global constructors that automatically figure out correct types...
Defined at line 193 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
void initializeRegionOnlyViewerPass (PassRegistry & )Defined at line 193 of file llvm/lib/Analysis/RegionPrinter.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AAUnderlyingObjects & AA)Defined at line 193 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
SucceededMatcher Succeeded ()Defined at line 194 of file llvm/include/llvm/Testing/Support/Error.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAInvariantLoadPointer & AA)Defined at line 194 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
StringRef getInstrProfRuntimeHookVarName ()Return the name of the hook variable defined in profile runtime library.
A reference to the variable causes the linker to link in the runtime
initialization module (which defines the hook variable).
Defined at line 194 of file llvm/include/llvm/ProfileData/InstrProf.h
-
const MachineInstrBuilder & addFrameReference (const MachineInstrBuilder & MIB, int FI, int Offset)addFrameReference - This function is used to add a reference to the base of
an abstract object on the stack frame of the current function. This
reference has base register as the FrameIndex offset until it is resolved.
This allows a constant offset to be specified as well...
Defined at line 194 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
template <class T>int po_end (const T & G)Defined at line 195 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>po_iterator<T> po_end (const T & G)Defined at line 195 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
FailedMatcher Failed ()Defined at line 195 of file llvm/include/llvm/Testing/Support/Error.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAAddressSpace & AA)Defined at line 195 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AANoAliasAddrSpace & AA)Defined at line 196 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const nonconst_instr_iterator & R)Defined at line 196 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <typename T>generic_gep_type_iterator<const T *> gep_type_begin (Type * Op0, ArrayRef<T> A)Defined at line 196 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
JITSymbolFlags operator& (const JITSymbolFlags & LHS, const JITSymbolFlags::FlagNames & RHS)Defined at line 196 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h
-
void toHex (ArrayRef Input, bool LowerCase, SmallVectorImpl<char> & Output)Convert buffer
to its hexadecimal representation.
The returned string is double the size of
Defined at line 196 of file llvm/include/llvm/ADT/StringExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAAllocationInfo & AA)Defined at line 197 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <class T>iterator_range<po_iterator<T>> post_order (const T & G)Defined at line 197 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>int post_order (const T & G)Defined at line 197 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
std::optional<int> getStringFnAttrAsInt (CallBase & CB, StringRef AttrKind)Defined at line 197 of file llvm/lib/Analysis/InlineCost.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const SCEV & S)Defined at line 197 of file llvm/include/llvm/Analysis/ScalarEvolution.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAIndirectCallInfo & AA)Defined at line 198 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <typename InfoT>Matcher Failed ()Defined at line 198 of file llvm/include/llvm/Testing/Support/Error.h
-
void initializePHIEliminationPass (PassRegistry & )Defined at line 199 of file llvm/lib/CodeGen/PHIElimination.cpp
-
void deleteGlobalInitializer (GlobalVariable * GV)"Remove" the global variable by deleting its initializer, making it
external.
Defined at line 198 of file llvm/tools/bugpoint/ExtractFunction.cpp
-
template <unsigned N, unsigned S>bool isShiftedUInt (uint64_t x)Checks if a unsigned integer is an N bit number shifted left by S.
Defined at line 198 of file llvm/include/llvm/Support/MathExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const AAGlobalValueInfo & AA)Defined at line 199 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AADenormalFPMath & AA)Defined at line 200 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
StringRef getInstrProfRuntimeHookVarUseFuncName ()Return the name of the compiler generated function that references the
runtime hook variable. The function is a weak global.
Defined at line 200 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool operator== (const nonconst_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 200 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
ThreadPoolStrategy hardware_concurrency (StringRef Num)Like hardware_concurrency() above, but builds a strategy
based on the rules described for get_threadpool_strategy().
If
is invalid, returns a default strategy where one thread per
hardware core is used.
Defined at line 200 of file llvm/include/llvm/Support/Threading.h
-
void initializeStackSlotColoringLegacyPass (PassRegistry & )Defined at line 201 of file llvm/lib/CodeGen/StackSlotColoring.cpp
-
Align commonAlignment (Align A, uint64_t Offset)Returns the alignment that satisfies both alignments.
Same semantic as MinAlign.
Defined at line 201 of file llvm/include/llvm/Support/Alignment.h
-
optional getStringFnAttrAsInt (Function * F, StringRef AttrKind)Defined at line 201 of file llvm/lib/Analysis/InlineCost.cpp
-
template <typename ...PTs>bool operator== (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)Defined at line 202 of file llvm/include/llvm/ADT/PointerUnion.h
-
template <typename T>generic_gep_type_iterator<const T *> gep_type_end (Type * , ArrayRef<T> A)Defined at line 202 of file llvm/include/llvm/IR/GetElementPtrTypeIterator.h
-
uint64_t decodeULEB128AndInc (const uint8_t *& p, const uint8_t * end, const char ** error)Defined at line 202 of file llvm/include/llvm/Support/LEB128.h
-
template <typename T>int countr_zero (T Val)Count number of 0's from the least significant bit to the most
stopping at the first 1.
Only unsigned integral types are allowed.
Returns std::numeric_limits
<T
>::digits on an input of 0.
Defined at line 202 of file llvm/include/llvm/ADT/bit.h
-
raw_ostream & operator<< (raw_ostream & OS, LocationSize Size)Defined at line 203 of file llvm/include/llvm/Analysis/MemoryLocation.h
-
template <typename InfoT, typename M>Matcher Failed (M Matcher)Defined at line 203 of file llvm/include/llvm/Testing/Support/Error.h
-
JITSymbolFlags operator| (const JITSymbolFlags & LHS, const JITSymbolFlags::FlagNames & RHS)Defined at line 203 of file llvm/include/llvm/ExecutionEngine/JITSymbol.h
-
StringRef denormalModeKindName (DenormalModeKind Mode)Return the name used for the denormal handling mode used by the
expected names from the denormal-fp-math attribute.
Defined at line 203 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
void initializePostRASchedulerLegacyPass (PassRegistry & )Defined at line 204 of file llvm/lib/CodeGen/PostRASchedulerList.cpp
-
bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_pointer R)Defined at line 204 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
StringRef getInstrProfCounterBiasVarName ()Defined at line 204 of file llvm/include/llvm/ProfileData/InstrProf.h
-
FormattedNumber format_hex_no_prefix (uint64_t N, unsigned int Width, bool Upper)format_hex_no_prefix - Output
as a fixed width hexadecimal. Does not
prepend '0x' to the outputted string. If number will not fit in width,
full number is still printed. Examples:
OS
<
<
format_hex_no_prefix(255, 2) => ff
OS
<
<
format_hex_no_prefix(255, 2, true) => FF
OS
<
<
format_hex_no_prefix(255, 4) => 00ff
OS
<
<
format_hex_no_prefix(255, 1) => ff
Defined at line 204 of file llvm/include/llvm/Support/Format.h
-
ChangeStatus clampStateAndIndicateChange (DerefState & S, const DerefState & R)Defined at line 204 of file llvm/lib/Transforms/IPO/AttributorAttributes.cpp
-
template <typename ...PTs>bool operator!= (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)Defined at line 207 of file llvm/include/llvm/ADT/PointerUnion.h
-
bool operator== (const_pointer L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 207 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
iterator_range<ConstMIBundleOperands> const_mi_bundle_ops (const MachineInstr & MI)Defined at line 207 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h
-
void CloneFunctionMetadataInto (Function & NewFunc, const Function & OldFunc, ValueToValueMapTy & VMap, RemapFlags RemapFlag, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Clone OldFunc's metadata into NewFunc.
The caller is expected to populate
beforehand and set an appropriate
Subprograms/CUs/types that were already mapped to themselves
won't be duplicated.
NOTE: This function doesn't clone !llvm.dbg.cu when cloning into a different
module. Use CloneFunctionInto for that behavior.
Defined at line 207 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void deleteFunctionBody (Function * F)"Remove" the function by deleting all of it's basic blocks, making it
external.
Defined at line 206 of file llvm/tools/bugpoint/ExtractFunction.cpp
-
uint64_t maxUIntN (uint64_t N)Gets the maximum value for a N-bit unsigned integer.
Defined at line 207 of file llvm/include/llvm/Support/MathExtras.h
-
Type * parseType (StringRef Asm, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)Parse a type in the given string.
Parameters
Slots The optional slot mapping that will restore the parsing state of the module.Returns
null on error.
Defined at line 207 of file llvm/lib/AsmParser/Parser.cpp
-
StringRef getInstrProfBitmapBiasVarName ()Defined at line 208 of file llvm/include/llvm/ProfileData/InstrProf.h
-
basic_string toHex (ArrayRef Input, bool LowerCase)Defined at line 208 of file llvm/include/llvm/ADT/StringExtras.h
-
template <class T, class SetType>po_ext_iterator<T, SetType> po_ext_begin (T G, SetType & S)Defined at line 209 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <typename... M>Matcher FailedWithMessage (M... Matcher)Defined at line 209 of file llvm/include/llvm/Testing/Support/Error.h
-
ConversionResult ConvertUTF16toUTF32 (const UTF16 ** sourceStart, const UTF16 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags)---------------------------------------------------------------------
Defined at line 209 of file llvm/lib/Support/ConvertUTF.cpp
-
StructType * getDummyStructTy (LLVMContext & Context)Defined at line 210 of file llvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
-
bool operator== (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_reference R)Defined at line 210 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
int64_t decodeSLEB128AndInc (const uint8_t *& p, const uint8_t * end, const char ** error)Defined at line 210 of file llvm/include/llvm/Support/LEB128.h
-
bool recomputeLiveIns (MachineBasicBlock & MBB)Convenience function for recomputing live-in's for a MBB. Returns true if
any changes were made.
Defined at line 210 of file llvm/include/llvm/CodeGen/LivePhysRegs.h
-
ThreadPoolStrategy optimal_concurrency (unsigned int TaskCount)Returns an optimal thread strategy to execute specified amount of tasks.
This strategy should prevent us from creating too many threads if we
occasionaly have an unexpectedly small amount of tasks.
Defined at line 211 of file llvm/include/llvm/Support/Threading.h
-
void get_thread_name (SmallVectorImpl<char> & Name)Get the name of the current thread. The level of support for
getting a thread's name varies wildly across operating systems, and it
is not even guaranteed that if you can successfully set a thread's name
that you can later get it back. This function is intended for diagnostic
purposes, and as with setting a thread's name no indication of whether
the operation succeeded or failed is returned.
Defined at line 211 of file llvm/lib/Support/Unix/Threading.inc
-
template <typename ...PTs>bool operator< (PointerUnion<PTs...> lhs, PointerUnion<PTs...> rhs)Defined at line 212 of file llvm/include/llvm/ADT/PointerUnion.h
-
bool operator== (const MaterializedIterator & LHS, const MaterializedIterator & RHS)Equality operator.
Defined at line 212 of file llvm/include/llvm/ADT/PagedVector.h
-
StringRef getInstrProfNameSeparator ()Return the marker used to separate PGO names during serialization.
Defined at line 213 of file llvm/include/llvm/ProfileData/InstrProf.h
-
iterator_range<MIBundleOperands> mi_bundle_ops (MachineInstr & MI)Defined at line 213 of file llvm/include/llvm/CodeGen/MachineInstrBundle.h
-
template <class T, class SetType>po_ext_iterator<T, SetType> po_ext_end (T G, SetType & S)Defined at line 214 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
basic_string toHex (StringRef Input, bool LowerCase)Defined at line 214 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator== (const_reference L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 214 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
iterator_range vp_depth_first_shallow (VPBlockBase * G)Returns an iterator range to traverse the graph starting at
in
depth-first order. The iterator won't traverse through region blocks.
Defined at line 214 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
template <typename MachineFunctionPassT>FunctionToMachineFunctionPassAdaptor createFunctionToMachineFunctionPassAdaptor (MachineFunctionPassT && Pass)Defined at line 214 of file llvm/include/llvm/CodeGen/MachinePassManager.h
-
raw_ostream & operator<< (raw_ostream & OS, BranchProbability Prob)Defined at line 215 of file llvm/include/llvm/Support/BranchProbability.h
-
void addStringMetadataToLoop (Loop * TheLoop, const char * MDString, unsigned int V)Set input string into loop metadata by keeping other values intact.
If the string is already in loop metadata update value if it is
different.
Defined at line 215 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
FormattedNumber format_decimal (int64_t N, unsigned int Width)format_decimal - Output
as a right justified, fixed-width decimal. If
number will not fit in width, full number is still printed. Examples:
OS
<
<
format_decimal(0, 5) => " 0"
OS
<
<
format_decimal(255, 5) => " 255"
OS
<
<
format_decimal(-1, 3) => " -1"
OS
<
<
format_decimal(12345, 3) => "12345"
Defined at line 216 of file llvm/include/llvm/Support/Format.h
-
template <typename M>Matcher FailedWithMessageArray (M Matcher)Defined at line 216 of file llvm/include/llvm/Testing/Support/Error.h
-
bool printCompactDWARFExpr (raw_ostream & OS, iterator I, iterator E, function GetNameForDWARFReg)Defined at line 216 of file llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp
-
uint64_t decodeULEB128AndIncUnsafe (const uint8_t *& p)Defined at line 218 of file llvm/include/llvm/Support/LEB128.h
-
template <class RandomAccessIterator, class Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>void parallelSort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator & Comp)Defined at line 218 of file llvm/include/llvm/Support/Parallel.h
-
unsigned int encode (Align A)Returns a representation of the alignment, the encoded value is positive by
definition.
Defined at line 219 of file llvm/include/llvm/Support/Alignment.h
-
template <class T, class SetType>iterator_range<po_ext_iterator<T, SetType>> post_order_ext (const T & G, SetType & S)Defined at line 219 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
bool operator!= (const MaterializedIterator & LHS, const MaterializedIterator & RHS)Defined at line 219 of file llvm/include/llvm/ADT/PagedVector.h
-
bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 219 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
iterator_range vp_depth_first_shallow (const VPBlockBase * G)Defined at line 219 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
const MachineInstrBuilder & addConstantPoolReference (const MachineInstrBuilder & MIB, unsigned int CPI, Register GlobalBaseReg, unsigned char OpFlags)addConstantPoolReference - This function is used to add a reference to the
base of a constant value spilled to the per-function constant pool. The
reference uses the abstract ConstantPoolIndex which is retained until
either machine code emission or assembly output. In PIC mode on x86-32,
the GlobalBaseReg parameter can be used to make this a
GlobalBaseReg-relative reference.
Defined at line 219 of file llvm/lib/Target/X86/X86InstrBuilder.h
-
DenormalMode parseDenormalFPAttribute (StringRef Str)Returns the denormal mode to use for inputs and outputs.
Defined at line 219 of file llvm/include/llvm/ADT/FloatingPointMode.h
-
template <typename Underlying>fallible_iterator<Underlying> make_fallible_itr (Underlying I, Error & Err)Convenience wrapper to make a fallible_iterator value from an instance
of an underlying iterator and an Error reference.
Defined at line 220 of file llvm/include/llvm/ADT/fallible_iterator.h
-
Error writeMemProfRadixTreeBased (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, IndexedVersion Version, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)Defined at line 220 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
void initializeMachineUniformityAnalysisPassPass (PassRegistry & )Defined at line 221 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
-
template <typename M>detail::ValueMatchesPoly<M> HasValue (M Matcher)Defined at line 221 of file llvm/include/llvm/Testing/Support/Error.h
-
template <class T>df_iterator<T> df_begin (const T & G)Provide global constructors that automatically figure out correct types...
Defined at line 222 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int df_begin (const T & G)Provide global constructors that automatically figure out correct types...
Defined at line 222 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
ThreadPoolStrategy jobserver_concurrency ()Returns a thread strategy that attempts to coordinate with a GNU Make
jobserver. The number of active threads will be limited by the number of
available job slots. If no jobserver is detected in the environment, this
strategy falls back to the default hardware_concurrency() behavior.
Defined at line 222 of file llvm/include/llvm/Support/Threading.h
-
bool tryGetHexFromNibbles (char MSB, char LSB, uint8_t & Hex)Store the binary representation of the two provided values,
and
that make up the nibbles of a hexadecimal digit. If
or
do not correspond to proper nibbles of a hexadecimal digit, this method
returns false. Otherwise, returns true.
Defined at line 222 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const const_instr_iterator & R)Defined at line 223 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
int64_t minIntN (int64_t N)Gets the minimum value for a N-bit signed integer.
Defined at line 223 of file llvm/include/llvm/Support/MathExtras.h
-
Type * parseTypeAtBeginning (StringRef Asm, unsigned int & Read, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)Parse a string
that starts with a type.
gives the number of characters that have been read to parse
the type in
Parameters
Slots The optional slot mapping that will restore the parsing state of the module.Returns
null on error.
Defined at line 223 of file llvm/lib/AsmParser/Parser.cpp
-
void initializeMachineFunctionSplitterPass (PassRegistry & )Defined at line 223 of file llvm/lib/CodeGen/MachineFunctionSplitter.cpp
-
void CloneFunctionBodyInto (Function & NewFunc, const Function & OldFunc, ValueToValueMapTy & VMap, RemapFlags RemapFlag, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Clone OldFunc's body into NewFunc.
Defined at line 221 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
bool operator== (Align Lhs, uint64_t Rhs)Comparisons between Align and scalars. Rhs must be positive.
Defined at line 222 of file llvm/include/llvm/Support/Alignment.h
-
uint64_t overwriteULEB128 (uint8_t * bufLoc, uint64_t val)Overwrite a ULEB128 value and keep the original length.
Defined at line 223 of file llvm/include/llvm/Support/LEB128.h
-
void initializePhiValuesWrapperPassPass (PassRegistry & )Defined at line 225 of file llvm/lib/Analysis/PhiValues.cpp
-
bool isHeader (StringRef S)An over-accepting simplification of the HTTP RFC 7230 spec.
Defined at line 225 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
void fullyRecomputeLiveIns (ArrayRef<MachineBasicBlock *> MBBs)Convenience function for recomputing live-in's for a set of MBBs until the
computation converges.
Defined at line 225 of file llvm/include/llvm/CodeGen/LivePhysRegs.h
-
void initializeX86PreTileConfigPass (PassRegistry & )Defined at line 226 of file llvm/lib/Target/X86/X86PreTileConfig.cpp
-
bool operator!= (Align Lhs, uint64_t Rhs)Defined at line 226 of file llvm/include/llvm/Support/Alignment.h
-
template <class T>df_iterator<T> df_end (const T & G)Defined at line 227 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int df_end (const T & G)Defined at line 227 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <typename Underlying>fallible_iterator<Underlying> make_fallible_end (Underlying E)Convenience wrapper to make a fallible_iterator end value from an instance
of an underlying iterator.
Defined at line 227 of file llvm/include/llvm/ADT/fallible_iterator.h
-
bool operator!= (const const_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 227 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
KnownFPClass operator| (KnownFPClass LHS, const KnownFPClass & RHS)Defined at line 227 of file llvm/include/llvm/Support/KnownFPClass.h
-
iterator_range vp_post_order_shallow (VPBlockBase * G)Returns an iterator range to traverse the graph starting at
in
post order. The iterator won't traverse through region blocks.
Defined at line 227 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
template <typename UnaryFunction>void forEachCallbackCallSite (const CallBase & CB, UnaryFunction Func)Apply function Func to each CB's callback call site.
Defined at line 228 of file llvm/include/llvm/IR/AbstractCallSite.h
-
template <typename T1, typename T2, typename>SmallVector<uint64_t, 2> getDisjunctionWeights (const SmallVector<T1, 2> & B1, const SmallVector<T2, 2> & B2)Get the branch weights of a branch conditioned on b1 || b2, where b1 and b2
are 2 booleans that are the conditions of 2 branches for which we have the
branch weights B1 and B2, respectively. In both B1 and B2, the first
position (index 0) is for the 'true' branch, and the second position (index
1) is for the 'false' branch.
Defined at line 228 of file llvm/include/llvm/IR/ProfDataUtils.h
-
void initializePartiallyInlineLibCallsLegacyPassPass (PassRegistry & )Defined at line 230 of file llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DbgRecord & R)Defined at line 230 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
bool operator<= (Align Lhs, uint64_t Rhs)Defined at line 230 of file llvm/include/llvm/Support/Alignment.h
-
bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const nonconst_instr_iterator & R)Defined at line 231 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <class T>int ipo_begin (const T & G)Defined at line 232 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>ipo_iterator<T> ipo_begin (const T & G)Defined at line 232 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
KnownFPClass operator| (const KnownFPClass & LHS, KnownFPClass && RHS)Defined at line 232 of file llvm/include/llvm/Support/KnownFPClass.h
-
template <typename Underlying>iterator_range<fallible_iterator<Underlying>> make_fallible_range (Underlying I, Underlying E, Error & Err)Defined at line 232 of file llvm/include/llvm/ADT/fallible_iterator.h
-
int64_t maxIntN (int64_t N)Gets the maximum value for a N-bit signed integer.
Defined at line 232 of file llvm/include/llvm/Support/MathExtras.h
-
template <class T>iterator_range<df_iterator<T>> depth_first (const T & G)Provide an accessor method to use them in range-based patterns.
Defined at line 233 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int depth_first (const T & G)Provide an accessor method to use them in range-based patterns.
Defined at line 233 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int scc_begin (const T & G)Construct the begin iterator for a deduced graph type T.
Defined at line 233 of file llvm/include/llvm/ADT/SCCIterator.h
-
template <class T>scc_iterator<T> scc_begin (const T & G)Construct the begin iterator for a deduced graph type T.
Defined at line 233 of file llvm/include/llvm/ADT/SCCIterator.h
-
template <class IterTy, class FuncTy>void parallelForEach (IterTy Begin, IterTy End, FuncTy Fn)Defined at line 233 of file llvm/include/llvm/Support/Parallel.h
-
bool operator>= (Align Lhs, uint64_t Rhs)Defined at line 234 of file llvm/include/llvm/Support/Alignment.h
-
uint8_t hexFromNibbles (char MSB, char LSB)Return the binary representation of the two provided values,
and
that make up the nibbles of a hexadecimal digit.
Defined at line 234 of file llvm/include/llvm/ADT/StringExtras.h
-
iterator_range vp_post_order_deep (VPBlockBase * G)Returns an iterator range to traverse the graph starting at
in
post order while traversing through region blocks.
Defined at line 235 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
raw_ostream & operator<< (raw_ostream & OS, const DynamicAPInt & X)Defined at line 235 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool operator!= (const nonconst_instr_iterator & L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 235 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
void printFunctionList (const std::vector<Function *> & Funcs)Prints out list of problematic functions
Defined at line 235 of file llvm/tools/bugpoint/BugDriver.cpp
-
SmallVector getHeaders ()Defined at line 235 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
Value * MapValue (const Value * V, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Look up or compute a value in the value map.
Return a mapped value for a function-local value (Argument, Instruction,
BasicBlock), or compute and memoize a value for a Constant.
1. If
is in VM, return the result.
2. Else if
can be materialized with
do so, memoize
it in
and return it.
3. Else if
is a function-local value, return nullptr.
4. Else if
is a
return
or
depending
on
5. Else if
is a
wrapping a LocalAsMetadata,
recurse on the local SSA value, and return nullptr or "metadata !{}" on
missing depending on RF_IgnoreMissingValues.
6. Else if
is a
rewrap the return of
7. Else, compute the equivalent constant, and return it.
Defined at line 236 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
Value * MapValue (const Value * V, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Look up or compute a value in the value map.
Return a mapped value for a function-local value (Argument, Instruction,
BasicBlock), or compute and memoize a value for a Constant.
1. If
is in VM, return the result.
2. Else if
can be materialized with
do so, memoize
it in
and return it.
3. Else if
is a function-local value, return nullptr.
4. Else if
is a
return
or
depending
on
5. Else if
is a
wrapping a LocalAsMetadata,
recurse on the local SSA value, and return nullptr or "metadata !{}" on
missing depending on RF_IgnoreMissingValues.
6. Else if
is a
rewrap the return of
7. Else, compute the equivalent constant, and return it.
Defined at line 236 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
template <LEB128Sign Sign, typename T, typename U = char, unsigned MaxLEB128SizeBytes = 16>void appendLEB128 (SmallVectorImpl<U> & Buffer, T Value)Defined at line 236 of file llvm/include/llvm/Support/LEB128.h
-
DIExpression * parseDIExpressionBodyAtBeginning (StringRef Asm, unsigned int & Read, SMDiagnostic & Err, const Module & M, const SlotMapping * Slots)Defined at line 236 of file llvm/lib/AsmParser/Parser.cpp
-
template <typename T>int countl_zero (T Val)Count number of 0's from the most significant bit to the least
stopping at the first 1.
Only unsigned integral types are allowed.
Returns std::numeric_limits
<T
>::digits on an input of 0.
Defined at line 236 of file llvm/include/llvm/ADT/bit.h
-
template <class T>ipo_iterator<T> ipo_end (const T & G)Defined at line 237 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>int ipo_end (const T & G)Defined at line 237 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>int scc_end (const T & G)Construct the end iterator for a deduced graph type T.
Defined at line 238 of file llvm/include/llvm/ADT/SCCIterator.h
-
template <class T>scc_iterator<T> scc_end (const T & G)Construct the end iterator for a deduced graph type T.
Defined at line 238 of file llvm/include/llvm/ADT/SCCIterator.h
-
raw_ostream & operator<< (raw_ostream & OS, const MemoryAccess & MA)Defined at line 238 of file llvm/include/llvm/Analysis/MemorySSA.h
-
bool operator< (Align Lhs, uint64_t Rhs)Defined at line 238 of file llvm/include/llvm/Support/Alignment.h
-
bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_pointer R)Defined at line 239 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <class IterTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>ResultTy parallelTransformReduce (IterTy Begin, IterTy End, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)Defined at line 239 of file llvm/include/llvm/Support/Parallel.h
-
template <class T, class U>bool operator== (const IntrusiveRefCntPtr<T> & A, const IntrusiveRefCntPtr<U> & B)Defined at line 240 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
template <typename UnaryFunction>void forEachCallbackFunction (const CallBase & CB, UnaryFunction Func)Apply function Func to each CB's callback function.
Defined at line 240 of file llvm/include/llvm/IR/AbstractCallSite.h
-
void initializeMachinePipelinerPass (PassRegistry & )Defined at line 241 of file llvm/lib/CodeGen/MachinePipeliner.cpp
-
void initializeProfileSummaryInfoWrapperPassPass (PassRegistry & )Defined at line 241 of file llvm/lib/Analysis/ProfileSummaryInfo.cpp
-
template <class T>int inverse_post_order (const T & G)Defined at line 242 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class T>iterator_range<ipo_iterator<T>> inverse_post_order (const T & G)Defined at line 242 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
bool operator!= (const_pointer L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 242 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
iterator_range vp_depth_first_deep (VPBlockBase * G)Returns an iterator range to traverse the graph starting at
in
depth-first order while traversing through region blocks.
Defined at line 242 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
bool operator> (Align Lhs, uint64_t Rhs)Defined at line 242 of file llvm/include/llvm/Support/Alignment.h
-
BasicBlock * SplitCriticalEdge (BasicBlock * Src, BasicBlock * Dst, const CriticalEdgeSplittingOptions & Options)If an edge from Src to Dst is critical, split the edge and return true,
otherwise return false. This method requires that there be an edge between
the two blocks. It updates the analyses passed in the options struct
Defined at line 242 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
template <typename TResult>bool ConvertUTF8toWideInternal (StringRef Source, TResult & Result)Defined at line 242 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
Value * simplifyInstruction (SCCPSolver & Solver, SmallPtrSetImpl<Value *> & InsertedValues, Instruction & Inst)Try to use
value range from
to simplify it.
Defined at line 242 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp
-
bool isUIntN (unsigned int N, uint64_t x)Checks if an unsigned integer fits into the given (dynamic) bit width.
Defined at line 243 of file llvm/include/llvm/Support/MathExtras.h
-
bool isTheSameCluster (unsigned int A, unsigned int B)Return whether the input cluster ID's are the same and valid.
Defined at line 244 of file llvm/include/llvm/CodeGen/ScheduleDAG.h
-
FormattedBytes format_bytes (ArrayRef Bytes, optional FirstByteOffset, uint32_t NumPerLine, uint8_t ByteGroupSize, uint32_t IndentLevel, bool Upper)Defined at line 244 of file llvm/include/llvm/Support/Format.h
-
bool isBitcodeWrapper (const unsigned char * BufPtr, const unsigned char * BufEnd)isBitcodeWrapper - Return true if the given bytes are the magic bytes
for an LLVM IR bitcode wrapper.
Defined at line 244 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
bool operator!= (const MachineInstrBundleIterator<Ty, IsReverse> & L, const_reference R)Defined at line 245 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
template <class T, class U>bool operator!= (const IntrusiveRefCntPtr<T> & A, const IntrusiveRefCntPtr<U> & B)Defined at line 246 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
iterator_range vp_depth_first_deep (const VPBlockBase * G)Defined at line 246 of file llvm/include/../lib/Transforms/Vectorize/VPlanCFG.h
-
void printGlobalVariableList (const std::vector<GlobalVariable *> & GVs)Prints out list of problematic global variables
Defined at line 246 of file llvm/tools/bugpoint/BugDriver.cpp
-
bool tryGetFromHex (StringRef Input, std::string & Output)Convert hexadecimal string
to its binary representation and store
the result in
Returns true if the binary representation could be
converted from the hexadecimal string. Returns false if
contains
non-hexadecimal digits. The output string is half the size of
Defined at line 246 of file llvm/include/llvm/ADT/StringExtras.h
-
bool tryGetFromHex (StringRef Input, std::string & Output)Convert hexadecimal string
to its binary representation and store
the result in
Returns true if the binary representation could be
converted from the hexadecimal string. Returns false if
contains
non-hexadecimal digits. The output string is half the size of
Defined at line 246 of file llvm/include/llvm/ADT/StringExtras.h
-
unique_ptr createCOFFDumper (const object::COFFObjectFile & Obj, ScopedPrinter & Writer)Defined at line 251 of file llvm/tools/llvm-readobj/COFFDumper.cpp
-
unique_ptr createWasmDumper (const object::WasmObjectFile & Obj, ScopedPrinter & Writer)Defined at line 248 of file llvm/tools/llvm-readobj/WasmDumper.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RegSizeInfo & T)Defined at line 250 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RegSizeInfoByHwMode & T)Defined at line 255 of file llvm/utils/TableGen/Common/InfoByHwMode.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const TypeSetByHwMode & T)Defined at line 253 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
-
FunctionPass * createBasicRegisterAllocator ()BasicRegisterAllocation Pass - This pass implements a degenerate global
register allocator using the basic regalloc framework.
Defined at line 253 of file llvm/lib/CodeGen/RegAllocBasic.cpp
-
std::optional<ElementCount> getOptionalElementCountLoopAttribute (const Loop * TheLoop)Find a combination of metadata ("llvm.loop.vectorize.width" and
"llvm.loop.vectorize.scalable.enable") for a loop and use it to construct a
ElementCount. If the metadata "llvm.loop.vectorize.width" cannot be found
then std::nullopt is returned.
Defined at line 250 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void initializeSafepointIRVerifierPass (PassRegistry & )Defined at line 247 of file llvm/lib/IR/SafepointIRVerifier.cpp
-
template <class T, class SetTy>df_ext_iterator<T, SetTy> df_ext_begin (const T & G, SetTy & S)Defined at line 247 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
int64_t int64fromDynamicAPInt (const DynamicAPInt & X)This just calls through to the operator int64_t, but it's useful when a
function pointer is required. (Although this is marked inline, it is still
possible to obtain and use a function pointer to this.)
Defined at line 247 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void ExpectCanParseString (StringRef String)Checks that the given string can be parsed into an identical string inside
of an array.
Defined at line 247 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool isIntN (unsigned int N, int64_t x)Checks if an signed integer fits into the given (dynamic) bit width.
Defined at line 248 of file llvm/include/llvm/Support/MathExtras.h
-
void resolveRelativeObjectPath (SmallVectorImpl<char> & Buf, DWARFDie CU)Resolve the relative path to a build artifact referenced by DWARF by
applying DW_AT_comp_dir.
Defined at line 248 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const ConstantFPRange & CR)Defined at line 248 of file llvm/include/llvm/IR/ConstantFPRange.h
-
InstructionCost operator+ (const InstructionCost & LHS, const InstructionCost & RHS)Defined at line 248 of file llvm/include/llvm/Support/InstructionCost.h
-
SuccIterator succ_begin (Instruction * I)Defined at line 249 of file llvm/include/llvm/IR/CFG.h
-
template <class NodeRef, class BlockT, class RegionT>RNSuccIterator<NodeRef, BlockT, RegionT> succ_begin (NodeRef Node)Defined at line 249 of file llvm/include/llvm/Analysis/RegionIterator.h
-
bool operator!= (const_reference L, const MachineInstrBundleIterator<Ty, IsReverse> & R)Defined at line 249 of file llvm/include/llvm/CodeGen/MachineInstrBundleIterator.h
-
DynamicAPInt dynamicAPIntFromInt64 (int64_t X)Defined at line 250 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
SuccIterator succ_begin (const Instruction * I)Defined at line 250 of file llvm/include/llvm/IR/CFG.h
-
raw_ostream & operator<< (raw_ostream & OS, const MCOperand & MO)Defined at line 251 of file llvm/include/llvm/MC/MCInst.h
-
template <class T, class SetTy>df_ext_iterator<T, SetTy> df_ext_end (const T & G, SetTy & S)Defined at line 252 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T, class U>bool operator== (const IntrusiveRefCntPtr<T> & A, U * B)Defined at line 252 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
raw_ostream & operator<< (raw_ostream & OS, const SCEVPredicate & P)Defined at line 252 of file llvm/include/llvm/Analysis/ScalarEvolution.h
-
template <typename... Ts>auto formatv (bool Validate, const char * Fmt, Ts &&... Vals)formatv() with validation enable/disable controlled by the first argument.
Defined at line 252 of file llvm/include/llvm/Support/FormatVariadic.h
-
Align getKnownAlignment (Value * V, const DataLayout & DL, const Instruction * CxtI, AssumptionCache * AC, const DominatorTree * DT)Try to infer an alignment for the specified pointer.
Defined at line 252 of file llvm/include/llvm/Transforms/Utils/Local.h
-
SuccIterator succ_end (Instruction * I)Defined at line 253 of file llvm/include/llvm/IR/CFG.h
-
FormattedBytes format_bytes_with_ascii (ArrayRef Bytes, optional FirstByteOffset, uint32_t NumPerLine, uint8_t ByteGroupSize, uint32_t IndentLevel, bool Upper)Defined at line 253 of file llvm/include/llvm/Support/Format.h
-
template <class NodeRef, class BlockT, class RegionT>RNSuccIterator<NodeRef, BlockT, RegionT> succ_end (NodeRef Node)Defined at line 254 of file llvm/include/llvm/Analysis/RegionIterator.h
-
SuccIterator succ_end (const Instruction * I)Defined at line 254 of file llvm/include/llvm/IR/CFG.h
-
void analyzeImportedModule (const DWARFDie & DIE, CompileUnit & CU, DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces, std::function<void (const Twine &, const DWARFDie &)> ReportWarning)Collect references to parseable Swift interfaces in imported
DW_TAG_module blocks.
Defined at line 254 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool isMask_32 (uint32_t Value)Return true if the argument is a non-empty sequence of ones starting at the
least significant bit with the remainder zero (32 bit version).
Ex. isMask_32(0x0000FFFFU) == true.
Defined at line 255 of file llvm/include/llvm/Support/MathExtras.h
-
InstructionCost operator- (const InstructionCost & LHS, const InstructionCost & RHS)Defined at line 255 of file llvm/include/llvm/Support/InstructionCost.h
-
template <class T, class SetType>ipo_ext_iterator<T, SetType> ipo_ext_begin (const T & G, SetType & S)Defined at line 256 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
template <class RangeTy, class Comparator = std::less<decltype(*std::begin(RangeTy()))>>void parallelSort (RangeTy && R, const Comparator & Comp)Range wrappers.
Defined at line 256 of file llvm/include/llvm/Support/Parallel.h
-
raw_ostream & operator<< (raw_ostream & OS, const MCInst & MI)Defined at line 256 of file llvm/include/llvm/MC/MCInst.h
-
template <class T, class U>bool operator!= (const IntrusiveRefCntPtr<T> & A, U * B)Defined at line 257 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
bool succ_empty (const Instruction * I)Defined at line 257 of file llvm/include/llvm/IR/CFG.h
-
template <class T, class SetTy>iterator_range<df_ext_iterator<T, SetTy>> depth_first_ext (const T & G, SetTy & S)Defined at line 257 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
bool isRawBitcode (const unsigned char * BufPtr, const unsigned char * BufEnd)isRawBitcode - Return true if the given bytes are the magic bytes for
raw LLVM IR bitcode (without a wrapper).
Defined at line 257 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
void computeLiveIns (LivePhysRegs & LiveRegs, const MachineBasicBlock & MBB)Computes registers live-in to
assuming all of its successors
live-in lists are up-to-date. Puts the result into the given LivePhysReg
instance
Defined at line 257 of file llvm/lib/CodeGen/LivePhysRegs.cpp
-
std::vector<std::pair<StringRef, uint64_t>> GetStatistics ()Get the statistics. This can be used to look up the value of
statistics without needing to parse JSON.
This function does not prevent statistics being updated by other threads
during it's execution. It will return the value at the point that it is
read. However, it will prevent new statistics from registering until it
completes.
Defined at line 257 of file llvm/lib/Support/Statistic.cpp
-
void salvageDebugInfoForDbgValue (const MachineRegisterInfo & MRI, MachineInstr & MI, ArrayRef<MachineOperand *> DbgUsers)Assuming the instruction
is going to be deleted, attempt to salvage
debug users of
by writing the effect of
in a DIExpression.
Defined at line 257 of file llvm/lib/CodeGen/CodeGenCommonISel.cpp
-
bool ConvertUTF8toWide (StringRef Source, std::wstring & Result)Converts a UTF-8 StringRef to a std::wstring.
Returns
true on success.
Defined at line 258 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
template <typename... Ts>auto formatv (const char * Fmt, Ts &&... Vals)formatv() with validation enabled.
Defined at line 259 of file llvm/include/llvm/Support/FormatVariadic.h
-
void initializeMachineUniformityInfoPrinterPassPass (PassRegistry & )Defined at line 260 of file llvm/lib/CodeGen/MachineUniformityAnalysis.cpp
-
FunctionPass * createBasicRegisterAllocator (RegAllocFilterFunc F)Defined at line 257 of file llvm/lib/CodeGen/RegAllocBasic.cpp
-
unsigned int succ_size (const Instruction * I)Defined at line 260 of file llvm/include/llvm/IR/CFG.h
-
template <class T, class SetType>ipo_ext_iterator<T, SetType> ipo_ext_end (const T & G, SetType & S)Defined at line 261 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
bool isMask_64 (uint64_t Value)Return true if the argument is a non-empty sequence of ones starting at the
least significant bit with the remainder zero (64 bit version).
Defined at line 261 of file llvm/include/llvm/Support/MathExtras.h
-
template <class RangeTy, class FuncTy>void parallelForEach (RangeTy && R, FuncTy Fn)Defined at line 261 of file llvm/include/llvm/Support/Parallel.h
-
void ExpectCannotParseString (StringRef String)Checks that parsing the given string inside an array fails.
Defined at line 261 of file llvm/unittests/Support/YAMLParserTest.cpp
-
template <class T, class U>bool operator== (T * A, const IntrusiveRefCntPtr<U> & B)Defined at line 262 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
InstructionCost operator* (const InstructionCost & LHS, const InstructionCost & RHS)Defined at line 262 of file llvm/include/llvm/Support/InstructionCost.h
-
bool ConvertUTF8toWide (const char * Source, std::wstring & Result)Converts a UTF-8 C-string to a std::wstring.
Returns
true on success.
Defined at line 262 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
Metadata * MapMetadata (const Metadata * MD, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Lookup or compute a mapping for a piece of metadata.
Compute and memoize a mapping for
1. If
is mapped, return it.
2. Else if
or
is an
return
3. Else if
is a
call
and
re-wrap its return (returning nullptr on nullptr).
4. Else if
predicate returns true for
then add an
identity mapping for it and return it.
5. Else,
is an
These are remapped, along with their
transitive operands. Distinct nodes are duplicated or moved depending
on
Uniqued nodes are remapped like constants.
Defined at line 262 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
Metadata * MapMetadata (const Metadata * MD, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Lookup or compute a mapping for a piece of metadata.
Compute and memoize a mapping for
1. If
is mapped, return it.
2. Else if
or
is an
return
3. Else if
is a
call
and
re-wrap its return (returning nullptr on nullptr).
4. Else if
predicate returns true for
then add an
identity mapping for it and return it.
5. Else,
is an
These are remapped, along with their
transitive operands. Distinct nodes are duplicated or moved depending
on
Uniqued nodes are remapped like constants.
Defined at line 262 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
iterator_range successors (Instruction * I)Defined at line 263 of file llvm/include/llvm/IR/CFG.h
-
template <class T, class E>std::enable_if_t<std::is_error_code_enum<E>::value || std::is_error_condition_enum<E>::value, bool> operator== (const ErrorOr<T> & Err, E Code)Defined at line 263 of file llvm/include/llvm/Support/ErrorOr.h
-
template <class T, class E>int operator== (const ErrorOr<T> & Err, E Code)Defined at line 263 of file llvm/include/llvm/Support/ErrorOr.h
-
iterator_range successors (const Instruction * I)Defined at line 266 of file llvm/include/llvm/IR/CFG.h
-
void ResetStatistics ()Reset the statistics. This can be used to zero and de-register the
statistics in order to measure a compilation.
When this function begins to call destructors prior to returning, all
statistics will be zero and unregistered. However, that might not remain the
case by the time this function finishes returning. Whether update from other
threads are lost or merely deferred until during the function return is
timing sensitive.
Callers who intend to use this to measure statistics for a single
compilation should ensure that no compilations are in progress at the point
this function is called and that only one compilation executes until calling
GetStatistics().
Defined at line 266 of file llvm/lib/Support/Statistic.cpp
-
void initializeStaticDataSplitterPass (PassRegistry & )Defined at line 266 of file llvm/lib/CodeGen/StaticDataSplitter.cpp
-
template <class T, class SetType>iterator_range<ipo_ext_iterator<T, SetType>> inverse_post_order_ext (const T & G, SetType & S)Defined at line 266 of file llvm/include/llvm/ADT/PostOrderIterator.h
-
void setExplicitlyUnknownBranchWeights (Instruction & I, StringRef PassName)Specify that the branch weights for this terminator cannot be known at
compile time. This should only be called by passes, and never as a default
behavior in e.g. MDBuilder. The goal is to use this info to validate passes
do not accidentally drop profile info, and this API is called in cases where
the pass explicitly cannot provide that info. Defaulting it in would hide
bugs where the pass forgets to transfer over or otherwise specify profile
info. Use `PassName` to capture the pass name (i.e. DEBUG_TYPE) for
debuggability.
Defined at line 266 of file llvm/lib/IR/ProfDataUtils.cpp
-
std::optional<MDNode *> makeFollowupLoopID (MDNode * OrigLoopID, ArrayRef FollowupAttrs, const char * InheritOptionsAttrsPrefix, bool AlwaysNew)Create a new loop identifier for a loop created from a loop transformation.
Parameters
OrigLoopID The loop ID of the loop before the transformation.FollowupAttrs List of attribute names that contain attributes to be added to the new loop ID.InheritOptionsAttrsPrefix Selects which attributes should be inherited from the original loop. The following values are considered: nullptr : Inherit all attributes from "" : Do not inherit any attribute from only use those specified by a followup attribute. "<prefix>": Inherit all attributes except those which start with<prefix>; commonly used to remove metadata for the applied transformation.AlwaysNew If true, do not try to reuse OrigLoopID and never return std::nullopt.Returns
The loop ID for the after-transformation loop. The following values
can be returned:
std::nullopt : No followup attribute was found; it is up to the
transformation to choose attributes that make sense.
The original identifier can be reused.
nullptr : The new loop has no attributes.
MDNode* : A new unique loop identifier.
Defined at line 264 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <class T, class U>bool operator!= (T * A, const IntrusiveRefCntPtr<U> & B)Defined at line 267 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
bool isShiftedMask_32 (uint32_t Value)Return true if the argument contains a non-empty sequence of ones with the
remainder zero (32 bit version.) Ex. isShiftedMask_32(0x0000FF00U) == true.
Defined at line 267 of file llvm/include/llvm/Support/MathExtras.h
-
template <class RangeTy, class ResultTy, class ReduceFuncTy, class TransformFuncTy>ResultTy parallelTransformReduce (RangeTy && R, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)Defined at line 267 of file llvm/include/llvm/Support/Parallel.h
-
template <std::size_t I, typename PointerTy, unsigned IntBits, typename IntType, typename PtrTraits, typename Info>decltype(auto) get (const PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info> & Pair)Allow structured bindings on PointerIntPair.
Defined at line 267 of file llvm/include/llvm/ADT/PointerIntPair.h
-
bool operator<= (Align Lhs, MaybeAlign Rhs)Don't allow relational comparisons with MaybeAlign.
Defined at line 268 of file llvm/include/llvm/Support/Alignment.h
-
raw_ostream & operator<< (raw_ostream & OS, const AliasSetTracker & AST)Defined at line 268 of file llvm/include/llvm/Analysis/AliasSetTracker.h
-
void addLiveIns (MachineBasicBlock & MBB, const LivePhysRegs & LiveRegs)Adds registers contained in
to the block live-in list of
Does not add reserved registers.
Defined at line 268 of file llvm/lib/CodeGen/LivePhysRegs.cpp
-
bool operator>= (Align Lhs, MaybeAlign Rhs)Defined at line 269 of file llvm/include/llvm/Support/Alignment.h
-
InstructionCost operator/ (const InstructionCost & LHS, const InstructionCost & RHS)Defined at line 269 of file llvm/include/llvm/Support/InstructionCost.h
-
bool operator< (Align Lhs, MaybeAlign Rhs)Defined at line 270 of file llvm/include/llvm/Support/Alignment.h
-
SuccIterator succ_begin (BasicBlock * BB)Defined at line 270 of file llvm/include/llvm/IR/CFG.h
-
bool operator== (const SameNameIterator & A, const SameNameIterator & B)Defined at line 270 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
bool isBitcode (const unsigned char * BufPtr, const unsigned char * BufEnd)isBitcode - Return true if the given bytes are the magic bytes for
LLVM IR bitcode, either with or without a wrapper.
Defined at line 270 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
bool convertWideToUTF8 (const std::wstring & Source, std::string & Result)Converts a std::wstring to a UTF-8 encoded std::string.
Returns
true on success.
Defined at line 270 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
bool operator> (Align Lhs, MaybeAlign Rhs)Defined at line 271 of file llvm/include/llvm/Support/Alignment.h
-
SetThreadPriorityResult set_thread_priority (ThreadPriority Priority)Defined at line 271 of file llvm/lib/Support/Unix/Threading.inc
-
template <class T>bool operator== (std::nullptr_t , const IntrusiveRefCntPtr<T> & B)Defined at line 272 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
MDNode * MapMetadata (const MDNode * MD, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Version of MapMetadata with type safety for MDNode.
Defined at line 272 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
MDNode * MapMetadata (const MDNode * MD, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Version of MapMetadata with type safety for MDNode.
Defined at line 272 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
MemoryBlock trimBlockToPageSize (MemoryBlock M)Defined at line 272 of file llvm/lib/ExecutionEngine/SectionMemoryManager.cpp
-
void parallelFor (size_t Begin, size_t End, function_ref<void (size_t)> Fn)Defined at line 272 of file llvm/lib/Support/Parallel.cpp
-
bool operator<= (MaybeAlign Lhs, Align Rhs)Defined at line 273 of file llvm/include/llvm/Support/Alignment.h
-
template <class T>int idf_begin (const T & G)Defined at line 273 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>idf_iterator<T> idf_begin (const T & G)Defined at line 273 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
SuccIterator succ_begin (const BasicBlock * BB)Defined at line 273 of file llvm/include/llvm/IR/CFG.h
-
bool isShiftedMask_64 (uint64_t Value)Return true if the argument contains a non-empty sequence of ones with the
remainder zero (64 bit version.)
Defined at line 273 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator>= (MaybeAlign Lhs, Align Rhs)Defined at line 274 of file llvm/include/llvm/Support/Alignment.h
-
bool operator< (MaybeAlign Lhs, Align Rhs)Defined at line 275 of file llvm/include/llvm/Support/Alignment.h
-
bool operator> (MaybeAlign Lhs, Align Rhs)Defined at line 276 of file llvm/include/llvm/Support/Alignment.h
-
SuccIterator succ_end (BasicBlock * BB)Defined at line 276 of file llvm/include/llvm/IR/CFG.h
-
raw_ostream & operator<< (raw_ostream & OS, const InstructionCost & V)Defined at line 276 of file llvm/include/llvm/Support/InstructionCost.h
-
void setExplicitlyUnknownBranchWeightsIfProfiled (Instruction & I, StringRef PassName, const Function * F)Like setExplicitlyUnknownBranchWeights(...), but only sets unknown branch
weights in the new instruction if the parent function of the original
instruction has an entry count. This is to not confuse users by injecting
profile data into non-profiled functions. If
is nullptr, we will fetch
the function from
Defined at line 276 of file llvm/lib/IR/ProfDataUtils.cpp
-
template <class RangeTy, class FuncTy>Error parallelForEachError (RangeTy && R, FuncTy Fn)Parallel for-each, but with error handling.
Defined at line 276 of file llvm/include/llvm/Support/Parallel.h
-
template <class T>bool operator== (const IntrusiveRefCntPtr<T> & A, std::nullptr_t B)Defined at line 277 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
bool operator<= (MaybeAlign Lhs, MaybeAlign Rhs)Defined at line 278 of file llvm/include/llvm/Support/Alignment.h
-
template <class T>idf_iterator<T> idf_end (const T & G)Defined at line 278 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int idf_end (const T & G)Defined at line 278 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
bool operator>= (MaybeAlign Lhs, MaybeAlign Rhs)Defined at line 279 of file llvm/include/llvm/Support/Alignment.h
-
SuccIterator succ_end (const BasicBlock * BB)Defined at line 279 of file llvm/include/llvm/IR/CFG.h
-
bool isPowerOf2_32 (uint32_t Value)Return true if the argument is a power of two > 0.
Ex. isPowerOf2_32(0x00100000U) == true (32 bit edition.)
Defined at line 279 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator< (MaybeAlign Lhs, MaybeAlign Rhs)Defined at line 280 of file llvm/include/llvm/Support/Alignment.h
-
template <typename T>int countl_one (T Value)Count the number of ones from the most significant bit to the first
zero bit.
Ex. countl_one(0xFF0FFF00) == 8.
Only unsigned integral types are allowed.
Returns std::numeric_limits
<T
>::digits on an input of all ones.
Defined at line 280 of file llvm/include/llvm/ADT/bit.h
-
bool operator> (MaybeAlign Lhs, MaybeAlign Rhs)Defined at line 281 of file llvm/include/llvm/Support/Alignment.h
-
bool operator== (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 281 of file llvm/include/llvm/IR/IntrinsicInst.h
-
basic_string fromHex (StringRef Input)Convert hexadecimal string
to its binary representation.
The return string is half the size of
Defined at line 281 of file llvm/include/llvm/ADT/StringExtras.h
-
template <class T>bool operator!= (std::nullptr_t A, const IntrusiveRefCntPtr<T> & B)Defined at line 282 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
bool succ_empty (const BasicBlock * BB)Defined at line 282 of file llvm/include/llvm/IR/CFG.h
-
ConversionResult convertUTF8Sequence (const UTF8 ** source, const UTF8 * sourceEnd, UTF32 * target, ConversionFlags flags)Convert the first UTF8 sequence in the given source buffer to a UTF32
code point.
Parameters
source [in,out] A pointer to the source buffer. If the conversion succeeds, this pointer will be updated to point to the byte just past the end of the converted sequence.sourceEnd A pointer just past the end of the source buffer.target [out] The converted codeflags Whether the conversion is strict or lenient.Defined at line 282 of file llvm/include/llvm/Support/ConvertUTF.h
-
VirtRegInfo AnalyzeVirtRegInBundle (MachineInstr & MI, Register Reg, SmallVectorImpl<std::pair<MachineInstr *, unsigned int>> * Ops)AnalyzeVirtRegInBundle - Analyze how the current instruction or bundle uses
a virtual register. This function should not be called after operator++(),
it expects a fresh iterator.
Parameters
Reg The virtual register to analyze.Ops When set, this vector will receive an (MI, OpNum) entry for each operand referring to Reg.Defined at line 283 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
bool operator== (MaybeAlign Lhs, Align Rhs)Allow equality comparisons between Align and MaybeAlign.
Defined at line 284 of file llvm/include/llvm/Support/Alignment.h
-
template <class T>iterator_range<idf_iterator<T>> inverse_depth_first (const T & G)Provide an accessor method to use them in range-based patterns.
Defined at line 284 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <class T>int inverse_depth_first (const T & G)Provide an accessor method to use them in range-based patterns.
Defined at line 284 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
bool isPowerOf2_64 (uint64_t Value)Return true if the argument is a power of two > 0 (64 bit edition.)
Defined at line 284 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T, unsigned LN, unsigned RN, typename C>bool operator== (const SmallSet<T, LN, C> & LHS, const SmallSet<T, RN, C> & RHS)Equality comparison for SmallSet.
Iterates over elements of LHS confirming that each element is also a member
of RHS, and that RHS contains no additional values.
Equivalent to N calls to RHS.count.
For small-set mode amortized complexity is O(N^2)
For large-set mode amortized complexity is linear, worst case is O(N^2) (if
every hash collides).
Defined at line 284 of file llvm/include/llvm/ADT/SmallSet.h
-
bool operator!= (MaybeAlign Lhs, Align Rhs)Defined at line 285 of file llvm/include/llvm/Support/Alignment.h
-
unsigned int succ_size (const BasicBlock * BB)Defined at line 285 of file llvm/include/llvm/IR/CFG.h
-
template <class T>T * getOpcodeDef (Register Reg, const MachineRegisterInfo & MRI)Templated variant of getOpcodeDef returning a MachineInstr derived T.
See if Reg is defined by an single def instruction of type T
Also try to do trivial folding if it's a COPY with
same types. Returns null otherwise.
Defined at line 285 of file llvm/include/llvm/CodeGen/GlobalISel/Utils.h
-
bool operator!= (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 285 of file llvm/include/llvm/IR/IntrinsicInst.h
-
void recomputeLivenessFlags (MachineBasicBlock & MBB)Recomputes dead and kill flags in
Defined at line 285 of file llvm/lib/CodeGen/LivePhysRegs.cpp
-
bool operator== (Align Lhs, MaybeAlign Rhs)Defined at line 286 of file llvm/include/llvm/Support/Alignment.h
-
bool operator!= (Align Lhs, MaybeAlign Rhs)Defined at line 287 of file llvm/include/llvm/Support/Alignment.h
-
template <class T>bool operator!= (const IntrusiveRefCntPtr<T> & A, std::nullptr_t B)Defined at line 287 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
void setExplicitlyUnknownFunctionEntryCount (Function & F, StringRef PassName)Analogous to setExplicitlyUnknownBranchWeights, but for functions and their
entry counts.
Defined at line 287 of file llvm/lib/IR/ProfDataUtils.cpp
-
MemoryBuffer * unwrap (LLVMMemoryBufferRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 288 of file llvm/include/llvm/Support/MemoryBuffer.h
-
LLVMMemoryBufferRef wrap (const MemoryBuffer * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 288 of file llvm/include/llvm/Support/MemoryBuffer.h
-
iterator_range successors (BasicBlock * BB)Defined at line 288 of file llvm/include/llvm/IR/CFG.h
-
raw_ostream & operator<< (raw_ostream & os, SlotIndex li)Defined at line 288 of file llvm/include/llvm/CodeGen/SlotIndexes.h
-
bool operator== (MaybeAlign Lhs, MaybeAlign Rhs)Allow equality comparisons with MaybeAlign.
Defined at line 289 of file llvm/include/llvm/Support/Alignment.h
-
bool operator> (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 289 of file llvm/include/llvm/IR/IntrinsicInst.h
-
void RemapInstruction (Instruction * I, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Convert the instruction operands from referencing the current values into
those specified by VM.
If
is set and an operand can't be found via
use the old value. Otherwise assert that this doesn't happen.
Note that
only returns
for SSA values missing from
Defined at line 289 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
void RemapInstruction (Instruction * I, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Convert the instruction operands from referencing the current values into
those specified by VM.
If
is set and an operand can't be found via
use the old value. Otherwise assert that this doesn't happen.
Note that
only returns
for SSA values missing from
Defined at line 289 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
iterator_range successors (const BasicBlock * BB)Defined at line 291 of file llvm/include/llvm/IR/CFG.h
-
bool operator!= (MaybeAlign Lhs, MaybeAlign Rhs)Defined at line 292 of file llvm/include/llvm/Support/Alignment.h
-
template <typename N>bool to_integer (StringRef S, N & Num, unsigned int Base)Convert the string
to an integer of the specified type using
the radix
If
is 0, auto-detects the radix.
Returns true if the number was successfully converted, false otherwise.
Defined at line 292 of file llvm/include/llvm/ADT/StringExtras.h
-
bool SkipBitcodeWrapperHeader (const unsigned char *& BufPtr, const unsigned char *& BufEnd, bool VerifyBufferSize)SkipBitcodeWrapperHeader - Some systems wrap bc files with a special
header for padding or other reasons. The format of this header is:
struct bc_header {
uint32_t Magic; // 0x0B17C0DE
uint32_t Version; // Version, currently always 0.
uint32_t BitcodeOffset; // Offset to traditional bitcode file.
uint32_t BitcodeSize; // Size of traditional bitcode file.
... potentially other gunk ...
};
This function is called when we find a file with a matching magic number.
In this case, skip down to the subsection of the file that is actually a
BC file.
If 'VerifyBufferSize' is true, check that the buffer is large enough to
contain the whole bitcode file.
Defined at line 292 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
bool operator== (const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & LHS, const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & RHS)Defined at line 293 of file llvm/include/llvm/ADT/iterator.h
-
bool operator>= (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 293 of file llvm/include/llvm/IR/IntrinsicInst.h
-
template <typename T>int countr_one (T Value)Count the number of ones from the least significant bit to the first
zero bit.
Ex. countr_one(0x00FF00FF) == 8.
Only unsigned integral types are allowed.
Returns std::numeric_limits
<T
>::digits on an input of all ones.
Defined at line 293 of file llvm/include/llvm/ADT/bit.h
-
bool isShiftedMask_32 (uint32_t Value, unsigned int & MaskIdx, unsigned int & MaskLen)Return true if the argument contains a non-empty sequence of ones with the
remainder zero (32 bit version.) Ex. isShiftedMask_32(0x0000FF00U) == true.
If true,
will specify the index of the lowest set bit and
is updated to specify the length of the mask, else neither are
updated.
Defined at line 293 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator== (MaybeAlign Lhs, nullopt_t )Allow equality comparisons with std::nullopt.
Defined at line 294 of file llvm/include/llvm/Support/Alignment.h
-
Error writeMemProfV3 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema)Write out MemProf Version3
Defined at line 294 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
bool operator!= (MaybeAlign Lhs, nullopt_t )Defined at line 295 of file llvm/include/llvm/Support/Alignment.h
-
bool operator== (nullopt_t , MaybeAlign Rhs)Defined at line 296 of file llvm/include/llvm/Support/Alignment.h
-
bool operator!= (nullopt_t , MaybeAlign Rhs)Defined at line 297 of file llvm/include/llvm/Support/Alignment.h
-
template <typename T, unsigned LN, unsigned RN, typename C>bool operator!= (const SmallSet<T, LN, C> & LHS, const SmallSet<T, RN, C> & RHS)Inequality comparison for SmallSet.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Defined at line 297 of file llvm/include/llvm/ADT/SmallSet.h
-
bool operator< (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 297 of file llvm/include/llvm/IR/IntrinsicInst.h
-
bool isExplicitlyUnknownProfileMetadata (const MDNode & MD)Defined at line 297 of file llvm/lib/IR/ProfDataUtils.cpp
-
bool operator< (const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & LHS, const iterator_adaptor_base<DerivedT, WrappedIteratorT, IteratorCategoryT, T, DifferenceTypeT, PointerT, ReferenceT> & RHS)Defined at line 297 of file llvm/include/llvm/ADT/iterator.h
-
template <class T, class SetTy>idf_ext_iterator<T, SetTy> idf_ext_begin (const T & G, SetTy & S)Defined at line 300 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <typename ContainerTy>bool hasSingleElement (ContainerTy && C)Returns true if the given container only contains a single element.
Defined at line 300 of file llvm/include/llvm/ADT/STLExtras.h
-
basic_string DebugStr (const Align & A)For usage in LLVM_DEBUG macros.
Defined at line 301 of file llvm/include/llvm/Support/Alignment.h
-
bool operator<= (const RawLocationWrapper & A, const RawLocationWrapper & B)Defined at line 301 of file llvm/include/llvm/IR/IntrinsicInst.h
-
raw_ostream & operator<< (raw_ostream & OS, const ValueInfo & VI)Defined at line 301 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
Error writeMemProfV4 (ProfOStream & OS, memprof::IndexedMemProfData & MemProfData, bool MemProfFullSchema, unique_ptr DataAccessProfileData, unique_ptr MemProfSum)Write out MemProf Version4
Defined at line 302 of file llvm/lib/ProfileData/IndexedMemProfData.cpp
-
template <typename T>int bit_width (T Value)Returns the number of bits needed to represent Value if Value is nonzero.
Returns 0 otherwise.
Ex. bit_width(5) == 3.
Defined at line 303 of file llvm/include/llvm/ADT/bit.h
-
Value * findScalarElement (Value * V, unsigned int EltNo)Given a vector and an element number, see if the scalar value is
already around as a register, for example if it were inserted then extracted
from the vector.
Defined at line 305 of file llvm/lib/Analysis/VectorUtils.cpp
-
bool hasExplicitlyUnknownBranchWeights (const Instruction & I)Defined at line 303 of file llvm/lib/IR/ProfDataUtils.cpp
-
basic_string getPGOFuncName (StringRef RawFuncName, LinkageTypes Linkage, StringRef FileName, uint64_t Version)Return the modified name for a function suitable to be
used the key for profile lookup. The function's original
name is
and has linkage of type
The function is defined in module
Defined at line 303 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <class T, class SetTy>idf_ext_iterator<T, SetTy> idf_ext_end (const T & G, SetTy & S)Defined at line 305 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>auto seq (T Begin, T End)Iterate over an integral type from Begin up to - but not including - End.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for
forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse
iteration).
Defined at line 305 of file llvm/include/llvm/ADT/Sequence.h
-
basic_string DebugStr (const MaybeAlign & MA)For usage in LLVM_DEBUG macros.
Defined at line 305 of file llvm/include/llvm/Support/Alignment.h
-
bool isShiftedMask_64 (uint64_t Value, unsigned int & MaskIdx, unsigned int & MaskLen)Return true if the argument contains a non-empty sequence of ones with the
remainder zero (64 bit version.) If true,
will specify the index
of the lowest set bit and
is updated to specify the length of the
mask, else neither are updated.
Defined at line 306 of file llvm/include/llvm/Support/MathExtras.h
-
void RemapDbgRecord (Module * M, DbgRecord * DR, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the Values used in the DbgRecord
using the value map
Defined at line 306 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
void RemapDbgRecord (Module * M, DbgRecord * DR, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the Values used in the DbgRecord
using the value map
Defined at line 306 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
bool operator< (const CodeGenRegister & A, const CodeGenRegister & B)Defined at line 307 of file llvm/utils/TableGen/Common/CodeGenRegisters.h
-
bool operator== (const ValueInfo & A, const ValueInfo & B)Defined at line 308 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
bool isCallableCC (CallingConv::ID CC)Returns
true if the calling convention allows the function to be called
directly or indirectly via a call-like instruction.
Defined at line 308 of file llvm/include/llvm/IR/CallingConv.h
-
template <typename ContainerTy>decltype(auto) getSingleElement (ContainerTy && C)Asserts that the given container has a single element and returns that
element.
Defined at line 309 of file llvm/include/llvm/ADT/STLExtras.h
-
int64_t computeDelta (SectionEntry * A, SectionEntry * B)Defined at line 309 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
-
bool to_float (const Twine & T, float & Num)Defined at line 310 of file llvm/include/llvm/ADT/StringExtras.h
-
template <class T, class SetTy>iterator_range<idf_ext_iterator<T, SetTy>> inverse_depth_first_ext (const T & G, SetTy & S)Defined at line 310 of file llvm/include/llvm/ADT/DepthFirstIterator.h
-
bool operator== (const CodeGenRegister & A, const CodeGenRegister & B)Defined at line 311 of file llvm/utils/TableGen/Common/CodeGenRegisters.h
-
raw_ostream & operator<< (raw_ostream & OS, const APFixedPoint & FX)Defined at line 312 of file llvm/include/llvm/ADT/APFixedPoint.h
-
template <typename T, typename... Args>IntrusiveRefCntPtr<T> makeIntrusiveRefCnt (Args &&... A)Factory function for creating intrusive ref counted pointers.
Defined at line 313 of file llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
-
void initializeX86FPStackifierLegacyPass (PassRegistry & )Defined at line 314 of file llvm/lib/Target/X86/X86FloatingPoint.cpp
-
bool to_float (const Twine & T, double & Num)Defined at line 314 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator!= (const ValueInfo & A, const ValueInfo & B)Defined at line 314 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>auto seq (T Size)Iterate over an integral type from 0 up to - but not including - Size.
Note: Size value has to be within [INTMAX_MIN, INTMAX_MAX - 1] for
forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse
iteration).
Defined at line 315 of file llvm/include/llvm/ADT/Sequence.h
-
error_code make_error_code (BitcodeError E)Defined at line 315 of file llvm/include/llvm/Bitcode/BitcodeReader.h
-
template <typename T>int bit_width_constexpr (T Value)Returns the number of bits needed to represent Value if Value is nonzero.
Returns 0 otherwise.
A constexpr version of bit_width.
Ex. bit_width_constexpr(5) == 3.
Defined at line 315 of file llvm/include/llvm/ADT/bit.h
-
template <typename T>auto drop_begin (T && RangeOrContainer, size_t N)Return a range covering
with the first N elements
excluded.
Defined at line 316 of file llvm/include/llvm/ADT/STLExtras.h
-
hash_code hash_value (const APFixedPoint & Val)Defined at line 317 of file llvm/include/llvm/ADT/APFixedPoint.h
-
template <size_t kValue>size_t ConstantLog2 ()Compile time Log2.
Valid only for positive powers of two.
Defined at line 317 of file llvm/include/llvm/Support/MathExtras.h
-
void RemapDbgRecordRange (Module * M, iterator_range Range, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the Values used in the DbgRecords
using the value map
Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
void RemapDbgRecordRange (Module * M, iterator_range Range, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the Values used in the DbgRecords
using the value map
Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
void RemapDbgRecordRange (Module * M, int Range, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the Values used in the DbgRecords
using the value map
Defined at line 317 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
bool to_float (const Twine & T, long double & Num)Defined at line 318 of file llvm/include/llvm/ADT/StringExtras.h
-
bool MaskedValueIsZero (const Value * V, const APInt & Mask, const SimplifyQuery & SQ, unsigned int Depth)Return true if 'V
&
Mask' is known to be zero. We use this predicate to
simplify operations downstream. Mask is known to be zero for bits that V
cannot have.
This function is defined on values with integer type, values with pointer
type, and vectors of integers. In the case
where V is a vector, the mask, known zero, and known one values are the
same width as the vector element, and the bit is set only if it is true
for all of the elements in the vector.
Defined at line 318 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool capturesNothing (CaptureComponents CC)Defined at line 320 of file llvm/include/llvm/Support/ModRef.h
-
bool operator< (const ValueInfo & A, const ValueInfo & B)Defined at line 320 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
raw_ostream & operator<< (raw_ostream & OS, const Error & E)Defined at line 320 of file llvm/include/llvm/Support/Error.h
-
template <typename GraphT>void WriteDOTGraphToFile (Function & F, GraphT && Graph, basic_string FileNamePrefix, bool IsSimple)Defined at line 320 of file llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
-
basic_string utostr (uint64_t X, bool isNeg)Defined at line 322 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename T>auto drop_end (T && RangeOrContainer, size_t N)Return a range covering
with the last N elements
excluded.
Defined at line 323 of file llvm/include/llvm/ADT/STLExtras.h
-
template <size_t kValue>size_t CTLog2 ()Defined at line 323 of file llvm/include/llvm/Support/MathExtras.h
-
bool capturesAnything (CaptureComponents CC)Defined at line 324 of file llvm/include/llvm/Support/ModRef.h
-
template <typename T, typename = std::enable_if_t<std::is_integral<T>::value && !std::is_enum<T>::value>>auto seq_inclusive (T Begin, T End)Iterate over an integral type from Begin to End inclusive.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]
for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse
iteration).
Defined at line 325 of file llvm/include/llvm/ADT/Sequence.h
-
bool capturesAddressIsNullOnly (CaptureComponents CC)Defined at line 328 of file llvm/include/llvm/Support/ModRef.h
-
bool operator== (const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & RHS)Comparison operators
Defined at line 328 of file llvm/include/llvm/ADT/ilist_iterator.h
-
void swap (ModuleToPostOrderCGSCCPassAdaptor & LHS, ModuleToPostOrderCGSCCPassAdaptor & RHS)Defined at line 328 of file llvm/include/llvm/Analysis/CGSCCPassManager.h
-
StringRef stripDirPrefix (StringRef PathNameStr, uint32_t NumPrefix)Strip NumPrefix level of directory name from PathNameStr. If the number of
directory separators is less than NumPrefix, strip all the directories and
leave base file name only.
Defined at line 329 of file llvm/lib/ProfileData/InstrProf.cpp
-
BasicBlock * SplitBlock (BasicBlock * Old, Instruction * SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Defined at line 330 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
template <typename T>T bit_floor (T Value)Returns the largest integral power of two no greater than Value if Value is
nonzero. Returns 0 otherwise.
Ex. bit_floor(5) == 4.
Defined at line 330 of file llvm/include/llvm/ADT/bit.h
-
unsigned int Log2_32 (uint32_t Value)Return the floor log base 2 of the specified value, -1 if the value is zero.
(32 bit edition.)
Ex. Log2_32(32) == 5, Log2_32(1) == 0, Log2_32(0) == -1, Log2_32(6) == 2
Defined at line 331 of file llvm/include/llvm/Support/MathExtras.h
-
bool shouldRename (Value * V)Defined at line 331 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp
-
bool updatePruning (const DWARFDie & Die, CompileUnit & CU, uint64_t ModulesEndOffset)Defined at line 331 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool capturesAddress (CaptureComponents CC)Defined at line 332 of file llvm/include/llvm/Support/ModRef.h
-
bool operator!= (const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & LHS, const ilist_iterator_w_bits<OptionsT, IsReverse, IsConst> & RHS)Defined at line 332 of file llvm/include/llvm/ADT/ilist_iterator.h
-
bool isPresplitCoroSuspendExitEdge (const BasicBlock & Src, const BasicBlock & Dest)Returns true if these basic blocks belong to a presplit coroutine and the
edge corresponds to the 'default' case in the switch statement in the
pattern:
%0 = call i8
.coro.suspend(token none, i1 false)
switch i8 %0, label %suspend [i8 0, label %resume
i8 1, label %cleanup]
i.e. the edge to the `%suspend` BB. This edge is special in that it will
be elided by coroutine lowering (coro-split), and the `%suspend` BB needs
to be kept as-is. It's not a real CFG edge - post-lowering, it will end
up being a `ret`, and it must be thus lowerable to support symmetric
transfer. For example:
- this edge is not a loop exit edge if encountered in a loop (and should
be ignored)
- must not be split for PGO instrumentation, for example.
Defined at line 361 of file llvm/lib/Analysis/CFG.cpp
-
int getSplatIndex (ArrayRef Mask)If all non-negative
elements are the same value, return that value.
If all elements are negative (undefined) or
contains different
non-negative values, return -1.
Defined at line 369 of file llvm/lib/Analysis/VectorUtils.cpp
-
bool canReturn (const Function & F)FIXME: this doesn't handle recursion.
Defined at line 342 of file llvm/lib/Analysis/CFG.cpp
-
void computeAndAddLiveIns (LivePhysRegs & LiveRegs, MachineBasicBlock & MBB)Convenience function combining computeLiveIns() and addLiveIns().
Defined at line 345 of file llvm/lib/CodeGen/LivePhysRegs.cpp
-
bool isPhysRegUsedAfter (Register Reg, int MBI)Check if physical register
is used after
Defined at line 353 of file llvm/lib/CodeGen/LivePhysRegs.cpp
-
unsigned int ComputeNumSignBits (const Value * Op, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Return the number of times the sign bit of the register is replicated into
the other bits. We know that at least 1 bit is always equal to the sign
bit (itself), but other cases can give us information. For example,
immediately after an "ashr X, 2", we know that the top 3 bits are all
equal to each other, so we return 3. For vectors, return the number of
sign bits for the vector element with the mininum number of known sign
bits.
Defined at line 336 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeMachineLICMPass (PassRegistry & )Defined at line 340 of file llvm/lib/CodeGen/MachineLICM.cpp
-
unsigned int ComputeMaxSignificantBits (const Value * Op, const DataLayout & DL, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, unsigned int Depth)Get the upper bound on bit size for this Value
as a signed integer.
i.e. x == sext(trunc(x to MaxSignificantBits) to bitwidth(x)).
Similar to the APInt::getSignificantBits function.
Defined at line 344 of file llvm/lib/Analysis/ValueTracking.cpp
-
void scaleProfData (Instruction & I, uint64_t S, uint64_t T)Scaling the profile data attached to 'I' using the ratio of S/T.
Defined at line 341 of file llvm/lib/IR/ProfDataUtils.cpp
-
void convertCtxProfToYaml (raw_ostream & OS, const PGOCtxProfile & Profile)Defined at line 377 of file llvm/lib/ProfileData/PGOCtxProfReader.cpp
-
void initializeMachineSinkingLegacyPass (PassRegistry & )Defined at line 331 of file llvm/lib/CodeGen/MachineSink.cpp
-
void initializeCompressEVEXPassPass (PassRegistry & )Defined at line 358 of file llvm/lib/Target/X86/X86CompressEVEX.cpp
-
FunctionPass * createGreedyRegisterAllocator ()Greedy register allocation pass - This pass implements a global register
allocator for optimized builds.
Defined at line 329 of file llvm/lib/CodeGen/RegAllocGreedy.cpp
-
FunctionPass * createGreedyRegisterAllocator (RegAllocFilterFunc F)Defined at line 333 of file llvm/lib/CodeGen/RegAllocGreedy.cpp
-
std::pair<LaneBitmask, LaneBitmask> AnalyzeVirtRegLanesInBundle (const MachineInstr & MI, Register Reg, const MachineRegisterInfo & MRI, const TargetRegisterInfo & TRI)Return a pair of lane masks (reads, writes) indicating which lanes this
instruction uses with Reg.
Defined at line 313 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
void initializeX86OptimizeLEAPassPass (PassRegistry & )Defined at line 315 of file llvm/lib/Target/X86/X86OptimizeLEAs.cpp
-
void initializeRAGreedyLegacyPass (PassRegistry & )Defined at line 311 of file llvm/lib/CodeGen/RegAllocGreedy.cpp
-
unique_ptr splitFunctionsOutOfModule (Module * M, const std::vector<Function *> & F, ValueToValueMapTy & VMap)Given a module and a list of functions in the module, split the functions
OUT of the specified module, and place them in the new module.
Defined at line 295 of file llvm/tools/bugpoint/ExtractFunction.cpp
-
void initializeReplaceWithVeclibLegacyPass (PassRegistry & )Defined at line 279 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp
-
void initializeShrinkWrapLegacyPass (PassRegistry & )Defined at line 301 of file llvm/lib/CodeGen/ShrinkWrap.cpp
-
void initializeSinkingLegacyPassPass (PassRegistry & )Defined at line 273 of file llvm/lib/Transforms/Scalar/Sink.cpp
-
void initializeStackFrameLayoutAnalysisLegacyPass (PassRegistry & )Defined at line 306 of file llvm/lib/CodeGen/StackFrameLayoutAnalysisPass.cpp
-
void RemapFunction (Function & F, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the operands, metadata, arguments, and instructions of a function.
Calls
on prefix data, prologue data, and personality
function; calls
on each attached MDNode; remaps the
argument types using the provided
and calls
on every instruction.
Defined at line 334 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
void RemapFunction (Function & F, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Remap the operands, metadata, arguments, and instructions of a function.
Calls
on prefix data, prologue data, and personality
function; calls
on each attached MDNode; remaps the
argument types using the provided
and calls
on every instruction.
Defined at line 334 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
template <typename RangeT, typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>iterator_range<pointee_iterator<WrappedIteratorT>> make_pointee_range (RangeT && Range)Defined at line 335 of file llvm/include/llvm/ADT/iterator.h
-
template <typename RangeT, typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>iterator_range<pointee_iterator<WrappedIteratorT>> make_pointee_range (RangeT && Range)Defined at line 335 of file llvm/include/llvm/ADT/iterator.h
-
template <typename RangeT, typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>int make_pointee_range (RangeT && Range)Defined at line 335 of file llvm/include/llvm/ADT/iterator.h
-
bool capturesReadProvenanceOnly (CaptureComponents CC)Defined at line 336 of file llvm/include/llvm/Support/ModRef.h
-
unsigned int Log2_64 (uint64_t Value)Return the floor log base 2 of the specified value, -1 if the value is zero.
(64 bit edition.)
Defined at line 337 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>auto enum_seq (EnumT Begin, EnumT End)Iterate over an enum type from Begin up to - but not including - End.
Note: `enum_seq` will generate each consecutive value, even if no
enumerator with that value exists.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for
forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse
iteration).
Defined at line 337 of file llvm/include/llvm/ADT/Sequence.h
-
basic_string itostr (int64_t X)Defined at line 337 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename ErrT, typename... ArgTs>Error make_error (ArgTs &&... Args)Make a Error instance representing failure using the given error info
type.
Defined at line 340 of file llvm/include/llvm/Support/Error.h
-
BitVector get_thread_affinity_mask ()Returns a mask that represents on which hardware thread, core, CPU, NUMA
group, the calling thread can be executed. On Windows, threads cannot
cross CPU sockets boundaries.
Defined at line 340 of file llvm/lib/Support/Unix/Threading.inc
-
void collectCmpOps (CmpInst * Comparison, SmallVectorImpl<Value *> & CmpOperands)Collect relevant operations from Comparison that we may want to insert copies
for.
Defined at line 340 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp
-
PhysRegInfo AnalyzePhysRegInBundle (const MachineInstr & MI, Register Reg, const TargetRegisterInfo * TRI)AnalyzePhysRegInBundle - Analyze how the current instruction or bundle uses
a physical register. This function should not be called after operator++(),
it expects a fresh iterator.
Parameters
Reg The physical register to analyze.Defined at line 340 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
StringRef getPGOFuncNameMetadataName ()Defined at line 341 of file llvm/include/llvm/ProfileData/InstrProf.h
-
bool capturesFullProvenance (CaptureComponents CC)Defined at line 341 of file llvm/include/llvm/Support/ModRef.h
-
const RecTy * resolveTypes (const RecTy * T1, const RecTy * T2)Find a common type that T1 and T2 convert to.
Return 0 if no such type exists.
Defined at line 342 of file llvm/lib/TableGen/Record.cpp
-
bool operator== (const attribute_iterator & LHS, const attribute_iterator & RHS)Defined at line 341 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
StringRef getPGONameMetadataName ()Defined at line 343 of file llvm/include/llvm/ProfileData/InstrProf.h
-
Constant * MapValue (const Constant * V, int & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Version of MapValue with type safety for Constant.
Defined at line 343 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
Constant * MapValue (const Constant * V, ValueToValueMapTy & VM, RemapFlags Flags, ValueMapTypeRemapper * TypeMapper, ValueMaterializer * Materializer, const MetadataPredicate * IdentityMD)Version of MapValue with type safety for Constant.
Defined at line 343 of file llvm/include/llvm/Transforms/Utils/ValueMapper.h
-
unsigned int Log2_32_Ceil (uint32_t Value)Return the ceil log base 2 of the specified value, 32 if the value is zero.
(32 bit edition).
Ex. Log2_32_Ceil(32) == 5, Log2_32_Ceil(1) == 0, Log2_32_Ceil(6) == 3
Defined at line 344 of file llvm/include/llvm/Support/MathExtras.h
-
basic_string toString (const APInt & I, unsigned int Radix, bool Signed, bool formatAsCLiteral, bool UpperCase, bool InsertSeparators)Defined at line 344 of file llvm/include/llvm/ADT/StringExtras.h
-
StringRef getStrippedSourceFileName (const GlobalObject & GO)Defined at line 344 of file llvm/lib/ProfileData/InstrProf.cpp
-
Value * GetPointerBaseWithConstantOffset (Value * Ptr, int64_t & Offset, const DataLayout & DL, bool AllowNonInbounds)Analyze the specified pointer to see if it can be expressed as a base
pointer plus a constant offset. Return the base and offset to the caller.
This is a wrapper around Value::stripAndAccumulateConstantOffsets that
creates and later unpacks the required APInt.
Defined at line 344 of file llvm/include/llvm/Analysis/ValueTracking.h
-
unsigned int get_cpus ()Returns how many physical CPUs or NUMA groups the system has.
Defined at line 345 of file llvm/lib/Support/Unix/Threading.inc
-
bool capturesAnyProvenance (CaptureComponents CC)Defined at line 345 of file llvm/include/llvm/Support/ModRef.h
-
bool hasDisableAllTransformsHint (const Loop * L)Look for the loop attribute that disables all transformation heuristic.
Defined at line 345 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename T>T bit_ceil (T Value)Returns the smallest integral power of two no smaller than Value if Value is
nonzero. Returns 1 otherwise.
Ex. bit_ceil(5) == 8.
The return value is undefined if the input is larger than the largest power
of two representable in T.
Defined at line 345 of file llvm/include/llvm/ADT/bit.h
-
LLVMAttributeRef wrap (Attribute Attr)Specialized opaque value conversions.
Defined at line 346 of file llvm/include/llvm/IR/Attributes.h
-
bool operator!= (const DWARFDie::attribute_iterator & LHS, const DWARFDie::attribute_iterator & RHS)Defined at line 346 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
const IntrinsicData * getIntrinsicWithChain (unsigned int IntNo)Find Intrinsic data by intrinsic ID
Defined at line 347 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h
-
bool isKnownNeverSNaN (Register Val, const MachineRegisterInfo & MRI)Returns true if
can be assumed to never be a signaling NaN.
Defined at line 349 of file llvm/include/llvm/CodeGen/GlobalISel/Utils.h
-
bool capturesAll (CaptureComponents CC)Defined at line 349 of file llvm/include/llvm/Support/ModRef.h
-
bool hasDisableLICMTransformsHint (const Loop * L)Look for the loop attribute that disables the LICM transformation heuristics.
Defined at line 349 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool operator== (const MachineMemOperand & LHS, const MachineMemOperand & RHS)@
}
Defined at line 349 of file llvm/include/llvm/CodeGen/MachineMemOperand.h
-
void initializeSelectOptimizePass (PassRegistry & )Defined at line 350 of file llvm/lib/CodeGen/SelectOptimize.cpp
-
unsigned int Log2_64_Ceil (uint64_t Value)Return the ceil log base 2 of the specified value, 64 if the value is zero.
(64 bit edition.)
Defined at line 350 of file llvm/include/llvm/Support/MathExtras.h
-
BasicBlock * SplitBlock (BasicBlock * Old, Instruction * SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Defined at line 350 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
Attribute unwrap (LLVMAttributeRef Attr)Specialized opaque value conversions.
Defined at line 351 of file llvm/include/llvm/IR/Attributes.h
-
bool operator== (const DWARFDie & LHS, const DWARFDie & RHS)Defined at line 351 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>auto enum_seq (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t )Iterate over an enum type from Begin up to - but not including - End, even
when `EnumT` is not marked as safely iterable by `enum_iteration_traits`.
Note: `enum_seq` will generate each consecutive value, even if no
enumerator with that value exists.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX] for
forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX] for reverse
iteration).
Defined at line 352 of file llvm/include/llvm/ADT/Sequence.h
-
basic_string toString (const APSInt & I, unsigned int Radix)Defined at line 353 of file llvm/include/llvm/ADT/StringExtras.h
-
void updateChildPruning (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & ChildInfo)Defined at line 353 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
TransformationMode hasUnrollTransformation (const Loop * L)@
{
Get the mode for LLVM's supported loop transformations.
Defined at line 353 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
const Value * GetPointerBaseWithConstantOffset (const Value * Ptr, int64_t & Offset, const DataLayout & DL, bool AllowNonInbounds)Defined at line 354 of file llvm/include/llvm/Analysis/ValueTracking.h
-
bool operator!= (const DWARFDie & LHS, const DWARFDie & RHS)Defined at line 356 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T MinAlign (U A, V B)A and B are either alignments or offsets. Return the minimum alignment that
may be assumed after adding the two together.
Defined at line 357 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator== (int64_t V1, const APSInt & V2)Defined at line 358 of file llvm/include/llvm/ADT/APSInt.h
-
APFloatBase::ExponentType exponentZero (const fltSemantics & semantics)Defined at line 358 of file llvm/lib/Support/APFloat.cpp
-
template <typename CGSCCPassT>ModuleToPostOrderCGSCCPassAdaptor createModuleToPostOrderCGSCCPassAdaptor (CGSCCPassT && Pass)A function to deduce a function pass type and wrap it in the
templated adaptor.
Defined at line 358 of file llvm/include/llvm/Analysis/CGSCCPassManager.h
-
bool operator!= (int64_t V1, const APSInt & V2)Defined at line 359 of file llvm/include/llvm/ADT/APSInt.h
-
template <class ItTy, class FuncTy>int map_iterator (ItTy I, FuncTy F)map_iterator - Provide a convenient way to create mapped_iterators, just like
make_pair is useful for creating pairs...
Defined at line 359 of file llvm/include/llvm/ADT/STLExtras.h
-
template <class ItTy, class FuncTy>mapped_iterator<ItTy, FuncTy> map_iterator (ItTy I, FuncTy F)map_iterator - Provide a convenient way to create mapped_iterators, just like
make_pair is useful for creating pairs...
Defined at line 359 of file llvm/include/llvm/ADT/STLExtras.h
-
bool operator<= (int64_t V1, const APSInt & V2)Defined at line 360 of file llvm/include/llvm/ADT/APSInt.h
-
bool operator< (const DWARFDie & LHS, const DWARFDie & RHS)Defined at line 360 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
template <typename T>T bit_ceil_constexpr (T Value)Returns the smallest integral power of two no smaller than Value if Value is
nonzero. Returns 1 otherwise.
Ex. bit_ceil(5) == 8.
The return value is undefined if the input is larger than the largest power
of two representable in T.
Defined at line 360 of file llvm/include/llvm/ADT/bit.h
-
bool isUniformLoop (Loop * Lp, Loop * OuterLp)Return true if the inner loop
is uniform with regard to the outer loop
(i.e., if the outer loop is vectorized, all the vector lanes
executing the inner loop will execute the same iterations). This check is
very constrained for now but it will be relaxed in the future.
is
considered uniform if it meets all the following conditions:
1) it has a canonical IV (starting from 0 and with stride 1),
2) its latch terminator is a conditional branch and,
3) its latch condition is a compare instruction whose operands are the
canonical IV and an OuterLp invariant.
This check doesn't take into account the uniformity of other conditions not
related to the loop latch because they don't affect the loop uniformity.
NOTE: We decided to keep all these checks and its associated documentation
together so that we can easily have a picture of the current supported loop
nests. However, some of the current checks don't depend on
and
would be redundantly executed for each
if we invoked this function for
different candidate outer loops. This is not the case for now because we
don't currently have the infrastructure to evaluate multiple candidate outer
loops and
will be a fixed parameter while we only support explicit
outer loop vectorization. It's also very likely that these checks go away
before introducing the aforementioned infrastructure. However, if this is not
the case, we should move the
independent checks to a separate
function that is only executed once for each
Defined at line 360 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
bool operator>= (int64_t V1, const APSInt & V2)Defined at line 361 of file llvm/include/llvm/ADT/APSInt.h
-
bool operator< (int64_t V1, const APSInt & V2)Defined at line 362 of file llvm/include/llvm/ADT/APSInt.h
-
bool operator!= (const MachineMemOperand & LHS, const MachineMemOperand & RHS)Defined at line 362 of file llvm/include/llvm/CodeGen/MachineMemOperand.h
-
template <typename RangeT, typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>int make_pointer_range (RangeT && Range)Defined at line 362 of file llvm/include/llvm/ADT/iterator.h
-
template <typename RangeT, typename WrappedIteratorT = decltype(std::begin(std::declval<RangeT>()))>iterator_range<pointer_iterator<WrappedIteratorT>> make_pointer_range (RangeT && Range)Defined at line 362 of file llvm/include/llvm/ADT/iterator.h
-
bool operator> (int64_t V1, const APSInt & V2)Defined at line 363 of file llvm/include/llvm/ADT/APSInt.h
-
APFloatBase::ExponentType exponentInf (const fltSemantics & semantics)Defined at line 363 of file llvm/lib/Support/APFloat.cpp
-
basic_string getIRPGONameForGlobalObject (const GlobalObject & GO, LinkageTypes Linkage, StringRef FileName)The PGO name has the format [
<filepath
>;]
<mangled
-name> where
<filepath
>; is
provided if linkage is local and is used to discriminate possibly identical
mangled names. ";" is used because it is unlikely to be found in either
<filepath
> or
<mangled
-name>.
Older compilers used getPGOFuncName() which has the format
[
<filepath
>:]
<mangled
-name>. This caused trouble for Objective-C functions
which commonly have :'s in their names. We still need to compute this name to
lookup functions from profiles built by older compilers.
Defined at line 363 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <class ContainerTy, class FuncTy>auto map_range (ContainerTy && C, FuncTy F)Defined at line 364 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>auto enum_seq_inclusive (EnumT Begin, EnumT End)Iterate over an enum type from Begin to End inclusive.
Note: `enum_seq_inclusive` will generate each consecutive value, even if no
enumerator with that value exists.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]
for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse
iteration).
Defined at line 364 of file llvm/include/llvm/ADT/Sequence.h
-
raw_ostream & operator<< (raw_ostream & OS, const APSInt & I)Defined at line 365 of file llvm/include/llvm/ADT/APSInt.h
-
void initializeScalarizerLegacyPassPass (PassRegistry & )Defined at line 367 of file llvm/lib/Transforms/Scalar/Scalarizer.cpp
-
uint64_t MinAlign (uint64_t A, uint64_t B)Fallback when arguments aren't integral.
Defined at line 367 of file llvm/include/llvm/Support/MathExtras.h
-
BasicBlock * splitBlockBefore (BasicBlock * Old, Instruction * SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)Defined at line 367 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
void analyzeContextInfo (const DWARFDie & DIE, unsigned int ParentIdx, CompileUnit & CU, DeclContext * CurrentDeclContext, DeclContextTree & Contexts, uint64_t ModulesEndOffset, DWARFLinkerBase::SwiftInterfacesMapTy * ParseableSwiftInterfaces, std::function<void (const Twine &, const DWARFDie &)> ReportWarning)Recursive helper to build the global DeclContext information and
gather the child->parent relationships in the original compile unit.
This function uses the same work list approach as lookForDIEsToKeep.
Returns
true when this DIE and all of its children are only
forward declarations to types defined in external clang modules
(i.e., forward declarations that are children of a DW_TAG_module).
Defined at line 367 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
LLVMContext * unwrap (LLVMContextRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 368 of file llvm/include/llvm/IR/LLVMContext.h
-
LLVMContextRef wrap (const LLVMContext * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 368 of file llvm/include/llvm/IR/LLVMContext.h
-
APFloatBase::ExponentType exponentNaN (const fltSemantics & semantics)Defined at line 368 of file llvm/lib/Support/APFloat.cpp
-
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>T rotl (T V, int R)Defined at line 369 of file llvm/include/llvm/ADT/bit.h
-
optional lookupPGONameFromMetadata (MDNode * MD)Defined at line 370 of file llvm/lib/ProfileData/InstrProf.cpp
-
raw_ostream & operator<< (raw_ostream & R, const ore::NV & Arg)Defined at line 371 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
LLVMContext ** unwrap (LLVMContextRef * Tys)Specialized opaque context conversions.
Defined at line 372 of file llvm/include/llvm/IR/LLVMContext.h
-
raw_ostream & operator<< (raw_ostream & OS, const object::WasmSymbol & Sym)Defined at line 372 of file llvm/include/llvm/Object/Wasm.h
-
uint64_t NextPowerOf2 (uint64_t A)Returns the next power of two (in 64-bits) that is strictly greater than A.
Returns zero on overflow.
Defined at line 373 of file llvm/include/llvm/Support/MathExtras.h
-
TransformationMode hasUnrollAndJamTransformation (const Loop * L)Defined at line 374 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
LLVMContextRef * wrap (const LLVMContext ** Tys)Defined at line 376 of file llvm/include/llvm/IR/LLVMContext.h
-
template <typename GraphType>raw_ostream & WriteGraph (raw_ostream & O, const GraphType & G, bool ShortNames, const Twine & Title)Defined at line 376 of file llvm/include/llvm/Support/GraphWriter.h
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, const InlineCost & IC)Defined at line 376 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
StringRef getOrdinalSuffix (unsigned int Val)Returns the English suffix for an ordinal integer (-st, -nd, -rd, -th).
Defined at line 378 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename EnumT, typename = std::enable_if_t<std::is_enum<EnumT>::value>>auto enum_seq_inclusive (EnumT Begin, EnumT End, force_iteration_on_noniterable_enum_t )Iterate over an enum type from Begin to End inclusive, even when `EnumT`
is not marked as safely iterable by `enum_iteration_traits`.
Note: `enum_seq_inclusive` will generate each consecutive value, even if no
enumerator with that value exists.
Note: Begin and End values have to be within [INTMAX_MIN, INTMAX_MAX - 1]
for forward iteration (resp. [INTMAX_MIN + 1, INTMAX_MAX - 1] for reverse
iteration).
Defined at line 379 of file llvm/include/llvm/ADT/Sequence.h
-
Error createError (const Twine & Err)A bunch of private, handy routines.
Defined at line 381 of file llvm/lib/Support/APFloat.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MCSymbol & Sym)Defined at line 381 of file llvm/include/llvm/MC/MCSymbol.h
-
template <typename T, typename = std::enable_if_t<std::is_unsigned_v<T>>>T rotr (T V, int R)Defined at line 382 of file llvm/include/llvm/ADT/bit.h
-
unsigned int partCountForBits (unsigned int bits)Defined at line 385 of file llvm/lib/Support/APFloat.cpp
-
uint64_t PowerOf2Ceil (uint64_t A)Returns the power of two which is greater than or equal to the given value.
Essentially, it is a ceil operation across the domain of powers of two.
Defined at line 385 of file llvm/include/llvm/Support/MathExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const CallsiteInfo & SNI)Defined at line 385 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
TypeSize operator* (const TypeSize & LHS, const int RHS)Additional operators needed to avoid ambiguous parses
because of the implicit conversion hack.
Defined at line 386 of file llvm/include/llvm/Support/TypeSize.h
-
TypeSize operator* (const TypeSize & LHS, const unsigned int RHS)Defined at line 389 of file llvm/include/llvm/Support/TypeSize.h
-
MachineInstrBuilder BuildMI (MachineFunction & MF, const MIMetadata & MIMD, const MCInstrDesc & MCID)Builder interface. Specify how to create the initial instruction itself.
Defined at line 391 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
unsigned int decDigitValue (unsigned int c)Returns 0U-9U. Return values >= 10U are not digits.
Defined at line 391 of file llvm/lib/Support/APFloat.cpp
-
Value * getSplatValue (const Value * V)Get splat value if the input is a splat vector or return nullptr.
The value may be extracted from a splat constants vector or from
a sequence of instructions that broadcast a single value into a vector.
Defined at line 391 of file llvm/lib/Analysis/VectorUtils.cpp
-
basic_string getIRPGOObjectName (const GlobalObject & GO, bool InLTO, MDNode * PGONameMetadata)Returns the PGO object name. This function has some special handling
when called in LTO optimization. The following only applies when calling in
LTO passes (when
is true): LTO's internalization privatizes many
global linkage symbols. This happens after value profile annotation, but
those internal linkage functions should not have a source prefix.
Additionally, for ThinLTO mode, exported internal functions are promoted
and renamed. We need to ensure that the original internal PGO name is
used when computing the GUID that is compared against the profiled GUIDs.
To differentiate compiler generated internal symbols from original ones,
PGOFuncName meta data are created and attached to the original internal
symbols in the value profile annotation step
(PGOUseFunc::annotateIndirectCallSites). If a symbol does not have the meta
data, its original linkage must be non-internal.
Defined at line 391 of file llvm/lib/ProfileData/InstrProf.cpp
-
TypeSize operator* (const TypeSize & LHS, const int64_t RHS)Defined at line 392 of file llvm/include/llvm/Support/TypeSize.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T divideCeil (U Numerator, V Denominator)Returns the integer ceil(Numerator / Denominator). Unsigned version.
Guaranteed to never overflow.
Defined at line 394 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename GraphType>basic_string WriteGraph (const GraphType & G, const Twine & Name, bool ShortNames, const Twine & Title, basic_string Filename)Writes graph into a provided
If
is empty, generates a random one.
Returns
The resulting filename, or an empty string if writing
failed.
Defined at line 394 of file llvm/include/llvm/Support/GraphWriter.h
-
TypeSize operator* (const int LHS, const TypeSize & RHS)Defined at line 395 of file llvm/include/llvm/Support/TypeSize.h
-
Boolean isLegalUTF8 (const UTF8 * source, int length)Utility routine to tell whether a sequence of bytes is legal UTF-8.
This must be called with the length pre-determined by the first byte.
If not calling this from ConvertUTF8to*, then the length can be set by:
length = trailingBytesForUTF8[*source]+1;
and the sequence is illegal right away if there aren't that many bytes
available.
If presented with a length > 4, this returns false. The Unicode
definition of UTF-8 goes up to 4-byte sequences.
Defined at line 397 of file llvm/lib/Support/ConvertUTF.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const Node & N)Print the name of this node's function.
Defined at line 398 of file llvm/include/llvm/Analysis/LazyCallGraph.h
-
TypeSize operator* (const unsigned int LHS, const TypeSize & RHS)Defined at line 398 of file llvm/include/llvm/Support/TypeSize.h
-
MachineInstrBuilder BuildMI (MachineFunction & MF, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)This version of the builder sets up the first operand as a
destination virtual register.
Defined at line 399 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename T>int hash_value (const T & Value)Provide a default implementation of `hash_value` when `addHash(const T
&
)`
is supported.
Defined at line 399 of file llvm/include/llvm/Support/HashBuilder.h
-
template <typename T>std::enable_if_t<is_detected<hashbuilder_detail::HashCodeHashBuilder::HasAddHashT, T>::value, hash_code> hash_value (const T & Value)Provide a default implementation of `hash_value` when `addHash(const T
&
)`
is supported.
Defined at line 399 of file llvm/include/llvm/Support/HashBuilder.h
-
TypeSize operator* (const int64_t LHS, const TypeSize & RHS)Defined at line 401 of file llvm/include/llvm/Support/TypeSize.h
-
uint64_t divideCeil (uint64_t Numerator, uint64_t Denominator)Fallback when arguments aren't integral.
Defined at line 401 of file llvm/include/llvm/Support/MathExtras.h
-
Expected readExponent (StringRef::iterator begin, StringRef::iterator end)Return the value of a decimal exponent of the form
[+-]ddddddd.
If the exponent overflows, returns a large exponent with the
appropriate sign.
Defined at line 402 of file llvm/lib/Support/APFloat.cpp
-
void PointerMayBeCaptured (const Value * V, CaptureTracker * Tracker, unsigned int MaxUsesToExplore)PointerMayBeCaptured - Visit the value and the values derived from it and
find values which appear to be capturing the pointer value. This feeds
results into and is controlled by the CaptureTracker object.
MaxUsesToExplore specifies how many uses the analysis should explore for
one value before giving up due too "too many uses". If MaxUsesToExplore
is zero, a default value is assumed.
This function only considers captures of the passed value via its def-use
chain, without considering captures of values it may be based on, or
implicit captures such as for external globals.
Defined at line 403 of file llvm/lib/Analysis/CaptureTracking.cpp
-
TypeSize operator* (const uint64_t LHS, const TypeSize & RHS)Defined at line 404 of file llvm/include/llvm/Support/TypeSize.h
-
void expectCanParseBool (StringRef S, bool Expected)Defined at line 404 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool isUniformLoopNest (Loop * Lp, Loop * OuterLp)Return true if
and all its nested loops are uniform with regard to
Defined at line 405 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
template <typename ContainerTy>auto reverse (ContainerTy && C)Returns an iterator_range over the given container which iterates in reverse.
Does not mutate the container.
Defined at line 406 of file llvm/include/llvm/ADT/STLExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const Session::MemoryRegionInfo & MRI)Defined at line 406 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
bool hasELFMagic (StringRef FilePath)Defined at line 408 of file llvm/lib/Debuginfod/Debuginfod.cpp
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)This version of the builder inserts the newly-built instruction before
the given position in the given MachineBasicBlock, and sets up the first
operand as a destination virtual register.
Defined at line 409 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename U, typename V>bool divideSignedWouldOverflow (U Numerator, V Denominator)Check whether divideCeilSigned or divideFloorSigned would overflow. This
happens only when Numerator = INT_MIN and Denominator = -1.
Defined at line 410 of file llvm/include/llvm/Support/MathExtras.h
-
void expectCannotParseBool (StringRef S)Defined at line 410 of file llvm/unittests/Support/YAMLParserTest.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const Init & I)Defined at line 412 of file llvm/include/llvm/TableGen/Record.h
-
Value * getArgumentAliasingToReturnedPointer (CallBase * Call, bool MustPreserveNullness)Defined at line 415 of file llvm/include/llvm/Analysis/ValueTracking.h
-
raw_ostream & operator<< (raw_ostream & OS, const Session::SymbolInfoMap & SIM)Defined at line 415 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
void writeNewOffsetsTo (MCStreamer & Out, DataExtractor & Data, DenseMap<uint64_t, uint64_t> & OffsetRemapping, uint64_t & Offset, const uint64_t Size, uint32_t OldOffsetSize, uint32_t NewOffsetSize)Defined at line 415 of file llvm/lib/DWP/DWP.cpp
-
template <typename U, typename V, typename T = common_sint<U, V>>T divideCeilSigned (U Numerator, V Denominator)Returns the integer ceil(Numerator / Denominator). Signed version.
Overflow is explicitly forbidden with an assert.
Defined at line 417 of file llvm/include/llvm/Support/MathExtras.h
-
IntegerType * getInductionIntegerTy (const DataLayout & DL, Type * Ty)Defined at line 417 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
bool isAlmostDeadIV (PHINode * IV, BasicBlock * LatchBlock, Value * Cond)Return true if the induction variable
in a Loop whose latch is
would become dead if the exit test
were removed.
Conservatively returns false if analysis is insufficient.
Defined at line 471 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
int getOwningLazyBitcodeModule (int && Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)Like getLazyBitcodeModule, except that the module takes ownership of
the memory buffer if successful. If successful, this moves Buffer. On
error, this *does not* move Buffer. If IsImporting is true, this module is
being parsed for ThinLTO importing into another module.
Defined at line of file
-
std::optional<ValueAndVReg> getIConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs)If
is defined by a statically evaluable chain of instructions rooted
on a G_CONSTANT returns its APInt value and def register.
Defined at line 434 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
raw_ostream & operator<< (raw_ostream & , const LoopNest & )Defined at line 437 of file llvm/lib/Analysis/LoopNestAnalysis.cpp
-
std::optional<ValueAndVReg> getAnyConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs, bool LookThroughAnyExt)If
is defined by a statically evaluable chain of instructions rooted
on a G_CONSTANT or G_FCONSTANT returns its value as APInt and def register.
Defined at line 440 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void deleteDeadLoop (Loop * L, DominatorTree * DT, ScalarEvolution * SE, LoopInfo * LI, MemorySSA * MSSA)This function deletes dead loops. The caller of this function needs to
guarantee that the loop is infact dead.
The function requires a bunch or prerequisites to be present:
- The loop needs to be in LCSSA form
- The loop needs to have a Preheader
- A unique dedicated exit block must exist
This also updates the relevant analysis information in
and
if pointers to those are provided.
It also updates the loop PM if an updater struct is provided.
Defined at line 485 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
Boolean isLegalUTF8Sequence (const UTF8 * source, const UTF8 * sourceEnd)Exported function to return whether a UTF-8 sequence is legal or not.
This is not used here; it's just exported.
Defined at line 428 of file llvm/lib/Support/ConvertUTF.cpp
-
bool isSplatValue (const Value * V, int Index, unsigned int Depth)Return true if each element of the vector value
is poisoned or equal to
every other non-poisoned element. If an index element is specified, either
every element of the vector is poisoned or the element at that index is not
poisoned and equal to every other non-poisoned element.
This may be more powerful than the related getSplatValue() because it is
not limited by finding a scalar source value to a splatted vector.
Defined at line 406 of file llvm/lib/Analysis/VectorUtils.cpp
-
unsigned int getUTF8SequenceSize (const UTF8 * source, const UTF8 * sourceEnd)Exported function to return the size of the first utf-8 code unit sequence,
Or 0 if the sequence is not valid;
Defined at line 440 of file llvm/lib/Support/ConvertUTF.cpp
-
std::optional<FPValueAndVReg> getFConstantVRegValWithLookThrough (Register VReg, const MachineRegisterInfo & MRI, bool LookThroughInstrs)If
is defined by a statically evaluable chain of instructions rooted
on a G_FCONSTANT returns its APFloat value and def register.
Defined at line 448 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool isGPUProfTarget (const Module & M)Determines whether module targets a GPU eligable for PGO
instrumentation
Defined at line 482 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool getShuffleDemandedElts (int SrcWidth, ArrayRef Mask, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS, bool AllowUndefElts)Transform a shuffle mask's output demanded element mask into demanded
element masks for the 2 operands, returns false if the mask isn't valid.
Both
and
are initialised to [SrcWidth].
permits "-1" indices to be treated as undef.
Defined at line 452 of file llvm/lib/Analysis/VectorUtils.cpp
-
const ConstantFP * getConstantFPVRegVal (Register VReg, const MachineRegisterInfo & MRI)Defined at line 461 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
basic_string getPGOFuncName (const Function & F, bool InLTO, uint64_t Version)Please use getIRPGOFuncName for LLVM IR instrumentation. This function is
for front-end (Clang, etc) instrumentation.
Return the modified name for function
suitable to be
used the key for profile lookup. Variable
indicates if this
is called in LTO optimization passes.
Defined at line 421 of file llvm/lib/ProfileData/InstrProf.cpp
-
void initializeMachineSchedulerLegacyPass (PassRegistry & )Defined at line 418 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
void initializeMachineVerifierLegacyPassPass (PassRegistry & )Defined at line 410 of file llvm/lib/CodeGen/MachineVerifier.cpp
-
basic_string getIRPGOFuncName (const Function & F, bool InLTO)Returns
the modified name for function
suitable to be
used as the key for IRPGO profile lookup.
indicates if this is
called from LTO optimization passes.
Defined at line 410 of file llvm/lib/ProfileData/InstrProf.cpp
-
void initializeX86ExecutionDomainFixPass (PassRegistry & )Defined at line 405 of file llvm/lib/Target/X86/X86TargetMachine.cpp
-
void getVisibleToRegularObjVtableGUIDs (ModuleSummaryIndex & Index, DenseSet<GlobalValue::GUID> & VisibleToRegularObjSymbols, function_ref<bool (StringRef)> IsVisibleToRegularObj)Defined at line of file
-
TransformationMode hasVectorizeTransformation (const Loop * L)Defined at line 392 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool operator< (const DWARFVerifier::DieRangeInfo & LHS, const DWARFVerifier::DieRangeInfo & RHS)Defined at line 418 of file llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h
-
TypeSize alignTo (TypeSize Size, uint64_t Align)Returns a TypeSize with a known minimum size that is the next integer
(mod 2**64) that is greater than or equal to
and is a multiple
of
must be non-zero.
Similar to the alignTo functions in MathExtras.h
Defined at line 418 of file llvm/include/llvm/Support/TypeSize.h
-
void initializeRegisterCoalescerLegacyPass (PassRegistry & )Defined at line 420 of file llvm/lib/CodeGen/RegisterCoalescer.cpp
-
void jitLinkForORC (object::OwningBinary<object::ObjectFile> O, RuntimeDyld::MemoryManager & MemMgr, JITSymbolResolver & Resolver, bool ProcessAllSections, unique_function<Error (const object::ObjectFile &, LoadedObjectInfo &, int)> OnLoaded, unique_function<void (object::OwningBinary<object::ObjectFile>, int, Error)> OnEmitted)Asynchronous JIT link for ORC.
Warning: This API is experimental and probably should not be used by anyone
but ORC's RTDyldObjectLinkingLayer2. Internally it constructs a RuntimeDyld
instance and uses continuation passing to perform the fix-up and finalize
steps asynchronously.
Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, const MIBInfo & MIB)Defined at line 420 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
raw_ostream & operator<< (raw_ostream & OS, const Session::FileInfo & FI)Defined at line 423 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <typename OStream, typename T>std::enable_if_t<! std::is_reference_v<OStream> && std::is_base_of_v<raw_ostream, OStream>, OStream &&> operator<< (OStream && OS, const T & Value)Call the appropriate insertion operator, given an rvalue reference to a
raw_ostream object and return a stream of the same type as the argument.
Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h
-
template <typename OStream, typename T>std::enable_if_t<!std::is_reference_v<OStream> && std::is_base_of_v<raw_ostream, OStream>, OStream &&> operator<< (OStream && OS, const T & Value)Call the appropriate insertion operator, given an rvalue reference to a
raw_ostream object and return a stream of the same type as the argument.
Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h
-
template <typename OStream, typename T>int operator<< (OStream && OS, const T & Value)Call the appropriate insertion operator, given an rvalue reference to a
raw_ostream object and return a stream of the same type as the argument.
Defined at line 424 of file llvm/include/llvm/Support/raw_ostream.h
-
raw_ostream & operator<< (raw_ostream & OS, const LLT & Ty)Defined at line 425 of file llvm/include/llvm/CodeGenTypes/LowLevelType.h
-
template <typename LeafTy, typename ScalarTy>raw_ostream & operator<< (raw_ostream & OS, const details::FixedOrScalableQuantity<LeafTy, ScalarTy> & PS)Stream operator function for `FixedOrScalableQuantity`.
Defined at line 426 of file llvm/include/llvm/Support/TypeSize.h
-
TransformationMode hasDistributeTransformation (const Loop * L)Defined at line 428 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void initializeStructurizeCFGLegacyPassPass (PassRegistry & )Defined at line 429 of file llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
-
bool operator== (const AttributeEncoding & LHS, const AttributeEncoding & RHS)Defined at line 429 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
template <typename GraphType>void dumpDotGraphToFile (const GraphType & G, const Twine & FileName, const Twine & Title, bool ShortNames, const Twine & Name)Defined at line 431 of file llvm/include/llvm/Support/GraphWriter.h
-
IntegerType * getWiderInductionTy (const DataLayout & DL, Type * Ty0, Type * Ty1)Defined at line 431 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
void writeStringsAndOffsets (MCStreamer & Out, DWPStringPool & Strings, MCSection * StrOffsetSection, StringRef CurStrSection, StringRef CurStrOffsetSection, uint16_t Version, SectionLengths & SectionLength, Dwarf64StrOffsetsPromotion StrOffsetsOptValue)Defined at line 431 of file llvm/lib/DWP/DWP.cpp
-
template <typename U, typename V, typename T = common_sint<U, V>>T divideFloorSigned (U Numerator, V Denominator)Returns the integer floor(Numerator / Denominator). Signed version.
Overflow is explicitly forbidden with an assert.
Defined at line 433 of file llvm/include/llvm/Support/MathExtras.h
-
Value * getUnderlyingObject (Value * V, unsigned int MaxLookup)Defined at line 437 of file llvm/include/llvm/Analysis/ValueTracking.h
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr & I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)Defined at line 437 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
raw_ostream & operator<< (raw_ostream & OS, const Session::FileInfoMap & FIM)Defined at line 438 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
bool hasOutsideLoopUser (const Loop * TheLoop, Instruction * Inst, SmallPtrSetImpl<Value *> & AllowedExit)Check that the instruction has outside loop users and is not an
identified reduction variable.
Defined at line 440 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MachineTraceMetrics::Trace & Tr)Defined at line 441 of file llvm/include/llvm/CodeGen/MachineTraceMetrics.h
-
void initializeRegAllocFastPass (PassRegistry & )Defined at line 445 of file llvm/lib/CodeGen/RegAllocFast.cpp
-
TransformationMode hasLICMVersioningTransformation (const Loop * L)Defined at line 438 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const SCC & C)Print a short description useful for debugging or logging.
We print the function names in the SCC wrapped in '()'s and skipping
the middle functions if there are a large number.
Note: this is defined inline to dodge issues with GCC's interpretation
of enclosing namespaces for friend function declarations.
Defined at line 440 of file llvm/include/llvm/Analysis/LazyCallGraph.h
-
template <typename LoopPassT>FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor (LoopPassT && Pass, bool UseMemorySSA)A function to deduce a loop pass type and wrap it in the templated
adaptor.
If
is a loop pass, the returned adaptor will be in loop mode.
If
is a loop-nest pass,
will first be wrapped into a
and the returned adaptor will be in loop-nest mode.
Defined at line 441 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
-
template <typename GraphType>void ViewGraph (const GraphType & G, const Twine & Name, bool ShortNames, const Twine & Title, Name Program)ViewGraph - Emit a dot graph, run 'dot', run gv on the postscript file,
then cleanup. For use from the debugger.
Defined at line 443 of file llvm/include/llvm/Support/GraphWriter.h
-
error_code make_error_code (instrprof_error E)Defined at line 445 of file llvm/include/llvm/ProfileData/InstrProf.h
-
pair getParsedIRPGOName (StringRef IRPGOName)Returns
the filename and the function name parsed from the output of
Defined at line 445 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool lazyLinkingRequested ()Defined at line 445 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
void expectCanParseScalar (StringRef Input, StringRef Expected)Checks that the given string can be parsed into an expected scalar value.
Defined at line 445 of file llvm/unittests/Support/YAMLParserTest.cpp
-
bool dieNeedsChildrenToBeMeaningful (uint32_t Tag)Defined at line 445 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
void initializePostMachineSchedulerLegacyPass (PassRegistry & )Defined at line 447 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MachineTraceMetrics::Ensemble & En)Defined at line 447 of file llvm/include/llvm/CodeGen/MachineTraceMetrics.h
-
Expected totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment)This is ugly and needs cleaning up, but I don't immediately see
how whilst remaining safe.
Defined at line 447 of file llvm/lib/Support/APFloat.cpp
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr * I, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)Defined at line 448 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
unsigned int findMaximalSubpartOfIllFormedUTF8Sequence (const UTF8 * source, const UTF8 * sourceEnd)---------------------------------------------------------------------
Defined at line 448 of file llvm/lib/Support/ConvertUTF.cpp
-
template <typename U, typename V, typename T = common_sint<U, V>>T mod (U Numerator, V Denominator)Returns the remainder of the Euclidean division of LHS by RHS. Result is
always non-negative.
Defined at line 449 of file llvm/include/llvm/Support/MathExtras.h
-
SmallVector collectChildrenInLoop (DominatorTree * DT, DomTreeNode * N, const Loop * CurLoop)Does a BFS from a given node to all of its children inside a given loop.
The returned vector of basic blocks includes the starting point.
Defined at line 450 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename DataT>void emitAppleAccelTable (AsmPrinter * Asm, AccelTable<DataT> & Contents, StringRef Prefix, const MCSymbol * SecBegin)Emit an Apple Accelerator Table consisting of entries in the specified
AccelTable. The DataT template parameter should be derived from
AppleAccelTableData.
Defined at line 452 of file llvm/include/llvm/CodeGen/AccelTable.h
-
StringRef getFuncNameWithoutPrefix (StringRef PGOFuncName, StringRef FileName)Given a PGO function name, remove the filename prefix and return
the original (static) function name.
Defined at line 452 of file llvm/lib/ProfileData/InstrProf.cpp
-
Error applyLibraryLinkModifiers (Session & S, LinkGraph & G)Defined at line 452 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AllocInfo & AE)Defined at line 456 of file llvm/include/llvm/IR/ModuleSummaryIndex.h
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const MIMetadata & MIMD, const MCInstrDesc & MCID)This version of the builder inserts the newly-built instruction before the
given position in the given MachineBasicBlock, and does NOT take a
destination register.
Defined at line 457 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T divideNearest (U Numerator, V Denominator)Returns (Numerator / Denominator) rounded by round-half-up. Guaranteed to
never overflow.
Defined at line 458 of file llvm/include/llvm/Support/MathExtras.h
-
bool storeToSameAddress (ScalarEvolution * SE, StoreInst * A, StoreInst * B)Returns true if A and B have same pointer operands or same SCEVs addresses
Defined at line 458 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
template <class BlockT, class LoopT>void discoverAndMapSubloop (LoopT * L, ArrayRef<BlockT *> Backedges, LoopInfoBase<BlockT, LoopT> * LI, const DomTreeBase<BlockT> & DomTree)Discover a subloop with the specified backedges such that: All blocks within
this loop are mapped to this loop or a subloop. And all subloops within this
loop have their parent loop set to this loop or a subloop.
Defined at line 459 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <class BlockT, class LoopT>void discoverAndMapSubloop (LoopT * L, ArrayRef<BlockT *> Backedges, LoopInfoBase<BlockT, LoopT> * LI, const int & DomTree)Discover a subloop with the specified backedges such that: All blocks within
this loop are mapped to this loop or a subloop. And all subloops within this
loop have their parent loop set to this loop or a subloop.
Defined at line 459 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
bool operator== (const iterator_base & X, const iterator_base & Y)Defined at line 460 of file llvm/include/llvm/Support/OnDiskHashTable.h
-
void swap (CGSCCToFunctionPassAdaptor & LHS, CGSCCToFunctionPassAdaptor & RHS)Defined at line 461 of file llvm/include/llvm/Analysis/CGSCCPassManager.h
-
Instruction & GetInstByName (Function & F, StringRef Name)Defined at line 461 of file llvm/unittests/Analysis/ScalarEvolutionTest.cpp
-
int get_physical_cores ()Returns how many physical cores (as opposed to logical cores returned from
thread::hardware_concurrency(), which includes hyperthreads).
Returns -1 if unknown for the current host system.
Defined at line 462 of file llvm/lib/Support/Unix/Threading.inc
-
uint64_t computeAllocationSizeForSections (std::vector<uint64_t> & SectionSizes, Align Alignment)A helper method for computeTotalAllocSize.
Computes the memory size required to allocate sections with the given sizes,
assuming that all sections are allocated with the given alignment
Defined at line 462 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
bool operator!= (const iterator_base & X, const iterator_base & Y)Defined at line 463 of file llvm/include/llvm/Support/OnDiskHashTable.h
-
basic_string getPGOFuncNameVarName (StringRef FuncName, LinkageTypes Linkage)is the string used as profile lookup key for the function. A
symbol is created to hold the name. Return the legalized symbol name.
Defined at line 464 of file llvm/lib/ProfileData/InstrProf.cpp
-
Instruction * SplitBlockAndInsertIfThen (Value * Cond, Instruction * SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)Defined at line 465 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
template <typename InputIteratorT>hash_code hash_combine_range (InputIteratorT first, InputIteratorT last)Compute a hash_code for a sequence of values.
This hashes a sequence of values. It produces the same hash_code as
'hash_combine(a, b, c, ...)', but can run over arbitrary sized sequences
and is significantly faster given pointers and types which can be hashed as
a sequence of bytes.
Defined at line 466 of file llvm/include/llvm/ADT/Hashing.h
-
std::optional<DefinitionAndSourceRegister> getDefSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)Find the def instruction for
and underlying value Register folding
away any copies.
Also walks through hints such as G_ASSERT_ZEXT.
Defined at line 469 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Error applyHarnessPromotions (Session & S, LinkGraph & G)Defined at line 469 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor (LoopPassManager && LPM, bool UseMemorySSA)If
is an instance of
the returned adaptor will
be in loop-nest mode if the pass manager contains only loop-nest passes.
Defined at line 470 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
-
template <>FunctionToLoopPassAdaptor createFunctionToLoopPassAdaptor<llvm::PassManager<Loop, LoopAnalysisManager, LoopStandardAnalysisResults &, LPMUpdater &>> (LoopPassManager && LPM, bool UseMemorySSA)If
is an instance of
the returned adaptor will
be in loop-nest mode if the pass manager contains only loop-nest passes.
Defined at line 470 of file llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
-
template <typename RangeT>hash_code hash_combine_range (RangeT && R)A wrapper for hash_combine_range above.
Defined at line 471 of file llvm/include/llvm/ADT/Hashing.h
-
bool isRequiredForExecution (SectionRef Section)Defined at line 471 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
void initializeSeparateConstOffsetFromGEPLegacyPassPass (PassRegistry & )Defined at line 472 of file llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
-
bool operator== (const std::reverse_iterator<DWARFDie::iterator> & LHS, const std::reverse_iterator<DWARFDie::iterator> & RHS)Defined at line 472 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
bool isTlsAddressCode (uint8_t DW_OP_Code)Defined at line 474 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
void inferAttribute (Function * F, unsigned int AttrIndex, const ValueLatticeElement & Val)Defined at line 476 of file llvm/lib/Transforms/Utils/SCCPSolver.cpp
-
bool operator!= (const std::reverse_iterator<DWARFDie::iterator> & LHS, const std::reverse_iterator<DWARFDie::iterator> & RHS)Defined at line 477 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr & I, const MIMetadata & MIMD, const MCInstrDesc & MCID)Defined at line 477 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T alignTo (U Value, V Align)Returns the next integer (mod 2**nbits) that is greater than or equal to
and is a multiple of
must be non-zero.
Examples:
Will overflow only if result is not representable in T.
Code
alignTo(5, 8) = 8 alignTo(17, 8) = 24 alignTo(~0LL, 8) = 0 alignTo(321, 255) = 510Defined at line 478 of file llvm/include/llvm/Support/MathExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const MappingCost & Cost)Overload the stream operator for easy debug printing.
Defined at line 479 of file llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
-
void constructSeqOffsettoOrigRowMapping (CompileUnit & Unit, const DWARFDebugLine::LineTable & LT, int & SeqOffToOrigRow)Defined at line 479 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
Instruction * SplitBlockAndInsertIfElse (Value * Cond, Instruction * SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)Defined at line 484 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
uint64_t alignTo (uint64_t Value, uint64_t Align)Fallback when arguments aren't integral.
Defined at line 485 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator== (const StringMapIterBase<ValueTy, IsConst> & LHS, const StringMapIterBase<ValueTy, IsConst> & RHS)Defined at line 486 of file llvm/include/llvm/ADT/StringMap.h
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, MachineInstr * I, const MIMetadata & MIMD, const MCInstrDesc & MCID)Defined at line 487 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
void setPGOFuncVisibility (Module & M, GlobalVariable * FuncNameVar)Defined at line 487 of file llvm/lib/ProfileData/InstrProf.cpp
-
const AllocaInst * findAllocaForValue (const Value * V, bool OffsetZero)Defined at line 489 of file llvm/include/llvm/Analysis/ValueTracking.h
-
bool isMaskedSlidePair (ArrayRef Mask, int NumElts, std::array<std::pair<int, int>, 2> & SrcInfo)Does this shuffle mask represent either one slide shuffle or a pair of
two slide shuffles, combined with a select on some constant vector mask?
A slide is a shuffle mask which shifts some set of elements up or down
the vector, with all other elements being undefined. An identity shuffle
will be matched a slide by 0. The output parameter provides the source
(-1 means no source), and slide direction for each slide.
Defined at line 489 of file llvm/lib/Analysis/VectorUtils.cpp
-
template <typename IteratorT>std::string join (IteratorT Begin, IteratorT End, StringRef Separator)Joins the strings in the range [Begin, End), adding Separator between
the elements.
Defined at line 491 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename IteratorT>basic_string join (IteratorT Begin, IteratorT End, StringRef Separator)Joins the strings in the range [Begin, End), adding Separator between
the elements.
Defined at line 491 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator!= (const StringMapIterBase<ValueTy, IsConst> & LHS, const StringMapIterBase<ValueTy, IsConst> & RHS)Defined at line 491 of file llvm/include/llvm/ADT/StringMap.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T alignToPowerOf2 (U Value, V Align)Will overflow only if result is not representable in T.
Defined at line 493 of file llvm/include/llvm/Support/MathExtras.h
-
bool isReadOnlyData (SectionRef Section)Defined at line 494 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
MachineInstrBuilder BuildMI (MachineBasicBlock * BB, const MIMetadata & MIMD, const MCInstrDesc & MCID)This version of the builder inserts the newly-built instruction at the end
of the given MachineBasicBlock, and does NOT take a destination register.
Defined at line 495 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
MachineInstr * getDefIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)Find the def instruction for
folding away any trivial copies. May
return nullptr if
is not a generic virtual register.
Also walks through hints such as G_ASSERT_ZEXT.
Defined at line 495 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
GlobalVariable * createPGOFuncNameVar (Module & M, LinkageTypes Linkage, StringRef PGOFuncName)Create and return the global variable for function name used in PGO
instrumentation.
is the IRPGO function name (returned by
for LLVM IR instrumentation and PGO function name
(returned by
for front-end instrumentation.
Defined at line 497 of file llvm/lib/ProfileData/InstrProf.cpp
-
Expected skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator * dot)Defined at line 498 of file llvm/lib/Support/APFloat.cpp
-
template <typename Range>basic_string join (Range && R, StringRef Separator)Joins the strings in the range [R.begin(), R.end()), adding Separator
between the elements.
Defined at line 499 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename Range>std::string join (Range && R, StringRef Separator)Joins the strings in the range [R.begin(), R.end()), adding Separator
between the elements.
Defined at line 499 of file llvm/include/llvm/ADT/StringExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const Type & T)Printing of types.
Defined at line 499 of file llvm/include/llvm/IR/Type.h
-
SDNodeFlags operator| (SDNodeFlags LHS, SDNodeFlags RHS)Defined at line 500 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h
-
uint64_t alignToPowerOf2 (uint64_t Value, uint64_t Align)Fallback when arguments aren't integral.
Defined at line 501 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename PtrType>bool operator== (const SmallPtrSetImpl<PtrType> & LHS, const SmallPtrSetImpl<PtrType> & RHS)Equality comparison for SmallPtrSet.
Iterates over elements of LHS confirming that each value from LHS is also in
RHS, and that no additional values are in RHS.
Defined at line 501 of file llvm/include/llvm/ADT/SmallPtrSet.h
-
Register getSrcRegIgnoringCopies (Register Reg, const MachineRegisterInfo & MRI)Find the source register for
folding away any trivial copies. It
will be an output register of the instruction that getDefIgnoringCopies
returns. May return an invalid register if
is not a generic virtual
register.
Also walks through hints such as G_ASSERT_ZEXT.
Defined at line 502 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
MachineInstrBuilder BuildMI (MachineBasicBlock * BB, const MIMetadata & MIMD, const MCInstrDesc & MCID, Register DestReg)This version of the builder inserts the newly-built instruction at the
end of the given MachineBasicBlock, and sets up the first operand as a
destination virtual register.
Defined at line 504 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
void initializeMIR2VecVocabLegacyAnalysisPass (PassRegistry & )Defined at line 505 of file llvm/lib/CodeGen/MIR2Vec.cpp
-
SDNodeFlags operator& (SDNodeFlags LHS, SDNodeFlags RHS)Defined at line 505 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h
-
template <typename FunctionPassT>CGSCCToFunctionPassAdaptor createCGSCCToFunctionPassAdaptor (FunctionPassT && Pass, bool EagerlyInvalidate, bool NoRerun)A function to deduce a function pass type and wrap it in the
templated adaptor.
Defined at line 505 of file llvm/include/llvm/Analysis/CGSCCPassManager.h
-
template <typename Sep, typename... Args>std::string join_items (Sep Separator, Args &&... Items)Joins the strings in the parameter pack
adding
between the elements. All arguments must be implicitly convertible to
std::string, or there should be an overload of std::string::operator+=()
that accepts the argument explicitly.
Defined at line 508 of file llvm/include/llvm/ADT/StringExtras.h
-
template <typename Sep, typename... Args>basic_string join_items (Sep Separator, Args &&... Items)Joins the strings in the parameter pack
adding
between the elements. All arguments must be implicitly convertible to
std::string, or there should be an overload of std::string::operator+=()
that accepts the argument explicitly.
Defined at line 508 of file llvm/include/llvm/ADT/StringExtras.h
-
void extractParts (Register Reg, LLT Ty, int NumParts, SmallVectorImpl<Register> & VRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)Helper function to split a wide generic register into bitwise blocks with
the given Type (which implies the number of blocks needed). The generic
registers created are appended to Ops, starting at bit 0 of Reg.
Defined at line 509 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Type * unwrap (LLVMTypeRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 512 of file llvm/include/llvm/IR/Type.h
-
template <>T * unwrap (LLVMTypeRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 512 of file llvm/include/llvm/IR/Type.h
-
LLVMTypeRef wrap (const Type * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 512 of file llvm/include/llvm/IR/Type.h
-
bool isZeroInit (SectionRef Section)Defined at line 512 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
Type ** unwrap (LLVMTypeRef * Tys)Specialized opaque type conversions.
Defined at line 516 of file llvm/include/llvm/IR/Type.h
-
template <class BlockT, class LoopT>raw_ostream & operator<< (raw_ostream & OS, const LoopBase<BlockT, LoopT> & Loop)Defined at line 516 of file llvm/include/llvm/Support/GenericLoopInfo.h
-
void SplitBlockAndInsertIfThenElse (Value * Cond, Instruction * SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)Defined at line 516 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
template <typename PtrType>bool operator!= (const SmallPtrSetImpl<PtrType> & LHS, const SmallPtrSetImpl<PtrType> & RHS)Inequality comparison for SmallPtrSet.
Equivalent to !(LHS == RHS).
Defined at line 517 of file llvm/include/llvm/ADT/SmallPtrSet.h
-
LLVMTypeRef * wrap (Type ** Tys)Defined at line 520 of file llvm/include/llvm/IR/Type.h
-
template <typename U, typename V, typename W, typename T = common_uint<common_uint<U, V>, W>>T alignTo (U Value, V Align, W Skew)If non-zero
is specified, the return value will be a minimal integer
that is greater than or equal to
and equal to
* N +
for
some integer N. If
is larger than
its value is adjusted to '
mod
must be non-zero.
Examples:
May overflow.
Code
alignTo(5, 8, 7) = 7 alignTo(17, 8, 1) = 17 alignTo(~0LL, 8, 3) = 3 alignTo(321, 255, 42) = 552Defined at line 524 of file llvm/include/llvm/Support/MathExtras.h
-
DynamicAPInt & operator+= (DynamicAPInt & A, int64_t B)---------------------------------------------------------------------------
Convenience operator overloads for int64_t.
---------------------------------------------------------------------------
Defined at line 531 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
DynamicAPInt & operator-= (DynamicAPInt & A, int64_t B)Defined at line 535 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool FlattenCFG (BasicBlock * BB, AAResults * AA)FlattenCFG - This function is used to flatten a CFG. For
example, it uses parallel-and and parallel-or mode to collapse
if-conditions and merge if-regions with identical statements.
Defined at line 533 of file llvm/lib/Transforms/Utils/FlattenCFG.cpp
-
unsigned int getNumBytesForUTF8 (UTF8 firstByte)Exported function to return the total number of bytes in a codepoint
represented in UTF-8, given the value of the first byte.
Defined at line 545 of file llvm/lib/Support/ConvertUTF.cpp
-
void narrowShuffleMaskElts (int Scale, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)Replace each shuffle mask index with the scaled sequential indices for an
equivalent mask of narrowed elements. Mask elements that are less than 0
(sentinel values) are repeated in the output mask.
Example with Scale = 4:
<
4 x i32>
<
3, 2, 0, -1> -->
<
16 x i8>
<
12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1>
This is the reverse process of widening shuffle mask elements, but it always
succeeds because the indexes can always be multiplied (scaled up) to map to
narrower vector elements.
Defined at line 519 of file llvm/lib/Analysis/VectorUtils.cpp
-
GlobalVariable * createPGOFuncNameVar (Function & F, StringRef PGOFuncName)Create and return the global variable for function name used in PGO
instrumentation.
is the IRPGO function name (returned by
for LLVM IR instrumentation and PGO function name
(returned by
for front-end instrumentation.
Defined at line 524 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool widenShuffleMaskElts (int Scale, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)Try to transform a shuffle mask by replacing elements with the scaled index
for an equivalent mask of widened elements. If all mask elements that would
map to a wider element of the new mask are the same negative number
(sentinel value), that element of the new mask is the same value. If any
element in a given slice is negative and some other element in that slice is
not the same value, return false (partial matches with sentinel values are
not allowed).
Example with Scale = 4:
<
16 x i8>
<
12, 13, 14, 15, 8, 9, 10, 11, 0, 1, 2, 3, -1, -1, -1, -1> -->
<
4 x i32>
<
3, 2, 0, -1>
This is the reverse process of narrowing shuffle mask elements if it
succeeds. This transform is not always possible because indexes may not
divide evenly (scale down) to map to wider vector elements.
Defined at line 540 of file llvm/lib/Analysis/VectorUtils.cpp
-
bool extractParts (Register Reg, LLT RegTy, LLT MainTy, LLT & LeftoverTy, SmallVectorImpl<Register> & VRegs, SmallVectorImpl<Register> & LeftoverVRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)Version which handles irregular splits.
Defined at line 518 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void dumpSectionContents (raw_ostream & OS, Session & S, LinkGraph & G)Defined at line 521 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
DynamicAPInt & operator*= (DynamicAPInt & A, int64_t B)Defined at line 539 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
DynamicAPInt & operator/= (DynamicAPInt & A, int64_t B)Defined at line 543 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void initializeMachineCopyPropagationLegacyPass (PassRegistry & )Defined at line 527 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp
-
void initializeScavengerTestPass (PassRegistry & )Defined at line 526 of file llvm/lib/CodeGen/RegisterScavenging.cpp
-
void initializeStackColoringLegacyPass (PassRegistry & )Defined at line 526 of file llvm/lib/CodeGen/StackColoring.cpp
-
Twine operator+ (const Twine & LHS, const Twine & RHS)Defined at line 526 of file llvm/include/llvm/ADT/Twine.h
-
bool isTLS (SectionRef Section)Defined at line 526 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
Twine operator+ (const char * LHS, StringRef RHS)Additional overload to guarantee simplified codegen; this is equivalent to
concat().
Defined at line 533 of file llvm/include/llvm/ADT/Twine.h
-
void writeIndexTable (MCStreamer & Out, ArrayRef ContributionOffsets, const MapVector<uint64_t, UnitIndexEntry> & IndexEntries, const AccessField & Field)Defined at line 533 of file llvm/lib/DWP/DWP.cpp
-
template <auto Align, typename V, typename T = common_uint<decltype(Align), V>>T alignTo (V Value)Returns the next integer (mod 2**nbits) that is greater than or equal to
and is a multiple of
must be non-zero.
Will overflow only if result is not representable in T.
Defined at line 535 of file llvm/include/llvm/Support/MathExtras.h
-
Error interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo * D)Defined at line 539 of file llvm/lib/Support/APFloat.cpp
-
template <typename T>bool operator== (ArrayRef<T> LHS, ArrayRef<T> RHS)@
}
@
{
Defined at line 540 of file llvm/include/llvm/ADT/ArrayRef.h
-
Twine operator+ (StringRef LHS, const char * RHS)Additional overload to guarantee simplified codegen; this is equivalent to
concat().
Defined at line 540 of file llvm/include/llvm/ADT/Twine.h
-
raw_ostream & operator<< (raw_ostream & OS, const Twine & RHS)Defined at line 544 of file llvm/include/llvm/ADT/Twine.h
-
template <typename T>bool operator== (const SmallVectorImpl<T> & LHS, ArrayRef<T> RHS)Defined at line 545 of file llvm/include/llvm/ADT/ArrayRef.h
-
template <typename U, typename V, typename W = uint8_t, typename T = common_uint<common_uint<U, V>, W>>T alignDown (U Value, V Align, W Skew)Returns the largest unsigned integer less than or equal to
and is
mod
must be non-zero. Guaranteed to never
overflow.
Defined at line 546 of file llvm/include/llvm/Support/MathExtras.h
-
bool isSafeToSpeculativelyExecute (const Instruction * I, int CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)Defined at line 546 of file llvm/include/llvm/Analysis/ValueTracking.h
-
bool isSafeToSpeculativelyExecute (const Instruction * I, ilist_iterator_w_bits CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)Defined at line 546 of file llvm/include/llvm/Analysis/ValueTracking.h
-
template <typename... To, typename From>bool isa (const From & Val)isa
<X
> - Return true if the parameter to the template is an instance of one
of the template type arguments. Used like this:
if (isa
<Type
>(myVal)) { ... }
if (isa
<Type0
, Type1, Type2>(myVal)) { ... }
Defined at line 547 of file llvm/include/llvm/Support/Casting.h
-
DynamicAPInt & operator%= (DynamicAPInt & A, int64_t B)Defined at line 547 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
KnownBits operator& (KnownBits LHS, const KnownBits & RHS)Defined at line 548 of file llvm/include/llvm/Support/KnownBits.h
-
template <typename RangeT, typename PredicateT>iterator_range<filter_iterator<detail::IterOfRange<RangeT>, PredicateT>> make_filter_range (RangeT && Range, PredicateT Pred)Convenience function that takes a range of elements and a predicate,
and return a new filter_iterator range.
FIXME: Currently if RangeT
&
&
is a rvalue reference to a temporary, the
lifetime of that temporary is not kept by the returned range object, and the
temporary is going to be dropped on the floor after the make_iterator_range
full expression that contains this function call.
Defined at line 549 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename RangeT, typename PredicateT>int make_filter_range (RangeT && Range, PredicateT Pred)Convenience function that takes a range of elements and a predicate,
and return a new filter_iterator range.
FIXME: Currently if RangeT
&
&
is a rvalue reference to a temporary, the
lifetime of that temporary is not kept by the returned range object, and the
temporary is going to be dropped on the floor after the make_iterator_range
full expression that contains this function call.
Defined at line 549 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T>bool operator!= (ArrayRef<T> LHS, ArrayRef<T> RHS)Defined at line 551 of file llvm/include/llvm/ADT/ArrayRef.h
-
DynamicAPInt operator+ (const DynamicAPInt & A, int64_t B)Defined at line 551 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
KnownBits operator& (const KnownBits & LHS, KnownBits && RHS)Defined at line 553 of file llvm/include/llvm/Support/KnownBits.h
-
template <unsigned B>int32_t SignExtend32 (uint32_t X)Sign-extend the number in the bottom B bits of X to a 32-bit integer.
Requires B
<
= 32.
Defined at line 554 of file llvm/include/llvm/Support/MathExtras.h
-
DynamicAPInt operator- (const DynamicAPInt & A, int64_t B)Defined at line 555 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
Boolean isLegalUTF8String (const UTF8 ** source, const UTF8 * sourceEnd)Exported function to return whether a UTF-8 string is legal or not.
This is not used here; it's just exported.
Defined at line 555 of file llvm/lib/Support/ConvertUTF.cpp
-
template <typename T>bool operator!= (const SmallVectorImpl<T> & LHS, ArrayRef<T> RHS)Defined at line 556 of file llvm/include/llvm/ADT/ArrayRef.h
-
KnownBits operator| (KnownBits LHS, const KnownBits & RHS)Defined at line 558 of file llvm/include/llvm/Support/KnownBits.h
-
unsigned int getDefRegState (bool B)Defined at line 559 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
DynamicAPInt operator* (const DynamicAPInt & A, int64_t B)Defined at line 559 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename To, typename From>decltype(auto) cast (const From & Val)cast
<X
> - Return the argument parameter cast to the specified type. This
casting operator asserts that the type is correct, so it does not return
null on failure. It does not allow a null argument (use cast_if_present for
that). It is typically used like this:
cast
<Instruction
>(myVal)->getParent()
Defined at line 559 of file llvm/include/llvm/Support/Casting.h
-
bool isSafeToSpeculativelyExecuteWithVariableReplaced (const Instruction * I, bool IgnoreUBImplyingAttrs)Don't use information from its non-constant operands. This helper is used
when its operands are going to be replaced.
Defined at line 560 of file llvm/include/llvm/Analysis/ValueTracking.h
-
void SplitBlockAndInsertIfThenElse (Value * Cond, Instruction * SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)Defined at line 560 of file llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
-
unsigned int getImplRegState (bool B)Defined at line 562 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename T>bool operator< (ArrayRef<T> LHS, ArrayRef<T> RHS)Defined at line 562 of file llvm/include/llvm/ADT/ArrayRef.h
-
DynamicAPInt operator/ (const DynamicAPInt & A, int64_t B)Defined at line 563 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
KnownBits operator| (const KnownBits & LHS, KnownBits && RHS)Defined at line 563 of file llvm/include/llvm/Support/KnownBits.h
-
int32_t SignExtend32 (uint32_t X, unsigned int B)Sign-extend the number in the bottom B bits of X to a 32-bit integer.
Requires B
<
= 32.
Defined at line 563 of file llvm/include/llvm/Support/MathExtras.h
-
unsigned int getKillRegState (bool B)Defined at line 565 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename To, typename From>decltype(auto) cast (From & Val)Defined at line 565 of file llvm/include/llvm/Support/Casting.h
-
DynamicAPInt operator% (const DynamicAPInt & A, int64_t B)Defined at line 567 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
raw_ostream & operator<< (raw_ostream & OS, const EVT & V)Defined at line 567 of file llvm/include/llvm/CodeGen/ValueTypes.h
-
raw_ostream & operator<< (raw_ostream & OS, const CacheCost & CC)===----------------------------------------------------------------------===//
CacheCost implementation
Defined at line 567 of file llvm/lib/Analysis/LoopCacheAnalysis.cpp
-
template <typename T>bool operator> (ArrayRef<T> LHS, ArrayRef<T> RHS)Defined at line 568 of file llvm/include/llvm/ADT/ArrayRef.h
-
unsigned int getDeadRegState (bool B)Defined at line 568 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
KnownBits operator^ (KnownBits LHS, const KnownBits & RHS)Defined at line 568 of file llvm/include/llvm/Support/KnownBits.h
-
uint32_t getValueProfRecordSize (uint32_t NumValueSites, uint32_t NumValueData)Return the total size of the value profile record including the
header and the value data.
Defined at line 570 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
raw_ostream & operator<< (raw_ostream & OS, const RefSCC & RC)Print a short description useful for debugging or logging.
We print the SCCs wrapped in '[]'s and skipping the middle SCCs if
there are a large number.
Note: this is defined inline to dodge issues with GCC's interpretation
of enclosing namespaces for friend function declarations.
Defined at line 570 of file llvm/include/llvm/Analysis/LazyCallGraph.h
-
unsigned int getUndefRegState (bool B)Defined at line 571 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
DynamicAPInt operator+ (int64_t A, const DynamicAPInt & B)Defined at line 571 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename To, typename From>decltype(auto) cast (From * Val)Defined at line 571 of file llvm/include/llvm/Support/Casting.h
-
template <unsigned B>int64_t SignExtend64 (uint64_t x)Sign-extend the number in the bottom B bits of X to a 64-bit integer.
Requires B
<
= 64.
Defined at line 572 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>bool operator<= (ArrayRef<T> LHS, ArrayRef<T> RHS)Defined at line 573 of file llvm/include/llvm/ADT/ArrayRef.h
-
KnownBits operator^ (const KnownBits & LHS, KnownBits && RHS)Defined at line 573 of file llvm/include/llvm/Support/KnownBits.h
-
unsigned int getInternalReadRegState (bool B)Defined at line 574 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
bool operator== (const find_iterator & LHS, const find_iterator & RHS)Comparison operators.
Defined at line 574 of file llvm/include/llvm/ADT/IntervalTree.h
-
auto filterDbgVars (int R)Filter the DbgRecord range to DbgVariableRecord types only and downcast.
Defined at line 574 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
iterator_range filterDbgVars (iterator_range R)Filter the DbgRecord range to DbgVariableRecord types only and downcast.
Defined at line 574 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
DynamicAPInt operator- (int64_t A, const DynamicAPInt & B)Defined at line 575 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
unsigned int getDebugRegState (bool B)Defined at line 577 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
template <typename To, typename From>decltype(auto) cast (int && Val)Defined at line 577 of file llvm/include/llvm/Support/Casting.h
-
template <typename To, typename From>decltype(auto) cast (std::unique_ptr<From> && Val)Defined at line 577 of file llvm/include/llvm/Support/Casting.h
-
template <typename T>bool operator>= (ArrayRef<T> LHS, ArrayRef<T> RHS)Defined at line 578 of file llvm/include/llvm/ADT/ArrayRef.h
-
raw_ostream & operator<< (raw_ostream & OS, const KnownBits & Known)Defined at line 578 of file llvm/include/llvm/Support/KnownBits.h
-
template <typename CGSCCPassT>DevirtSCCRepeatedPass createDevirtSCCRepeatedPass (CGSCCPassT && Pass, int MaxIterations)A function to deduce a function pass type and wrap it in the
templated adaptor.
Defined at line 578 of file llvm/include/llvm/Analysis/CGSCCPassManager.h
-
bool operator!= (const find_iterator & LHS, const find_iterator & RHS)Defined at line 579 of file llvm/include/llvm/ADT/IntervalTree.h
-
DynamicAPInt operator* (int64_t A, const DynamicAPInt & B)Defined at line 579 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
unsigned int getRenamableRegState (bool B)Defined at line 580 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
int64_t SignExtend64 (uint64_t X, unsigned int B)Sign-extend the number in the bottom B bits of X to a 64-bit integer.
Requires B
<
= 64.
Defined at line 581 of file llvm/include/llvm/Support/MathExtras.h
-
DynamicAPInt operator/ (int64_t A, const DynamicAPInt & B)Defined at line 583 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename T>hash_code hash_value (ArrayRef<T> S)@
}
Defined at line 584 of file llvm/include/llvm/ADT/ArrayRef.h
-
unsigned int getRegState (const MachineOperand & RegOp)Get all register state flags from machine operand
Defined at line 585 of file llvm/include/llvm/CodeGen/MachineInstrBuilder.h
-
DynamicAPInt operator% (int64_t A, const DynamicAPInt & B)Defined at line 587 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
uint32_t getValueProfRecordNumValueData (ValueProfRecord * This)Return the total number of value data for
record.
Defined at line 588 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
void initializeMIR2VecVocabPrinterLegacyPassPass (PassRegistry & )Defined at line 592 of file llvm/lib/CodeGen/MIR2Vec.cpp
-
bool widenShuffleMaskElts (ArrayRef M, SmallVectorImpl<int> & NewMask)A variant of the previous method which is specialized for Scale=2, and
treats -1 as undef and allows widening when a wider element is partially
undef in the narrow form of the mask. This transformation discards
information about which bytes in the original shuffle were undef.
Defined at line 591 of file llvm/lib/Analysis/VectorUtils.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MVT & VT)Defined at line 592 of file llvm/include/llvm/CodeGenTypes/MachineValueType.h
-
template <typename T, typename U = std::make_unsigned_t<T>>U AbsoluteValue (T X)Return the absolute value of a signed integer, converted to the
corresponding unsigned integer type. Avoids undefined behavior in std::abs
when you pass it INT_MIN or similar.
Defined at line 592 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename ...Ts>hash_code hash_combine (const Ts &... args)Combine values into a single hash_code.
This routine accepts a varying number of arguments of any type. It will
attempt to combine them into a single hash_code. For user-defined types it
attempts to call a
The result is suitable for returning from a user's hash_value
*implementation* for their user-defined type. Consumers of a type should
*not* call this routine, they should instead call 'hash_value'.
Defined at line 592 of file llvm/include/llvm/ADT/Hashing.h
-
bool operator== (const DynamicAPInt & A, int64_t B)We provide special implementations of the comparison operators rather than
calling through as above, as this would result in a 1.2x slowdown.
Defined at line 594 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool operator!= (const DynamicAPInt & A, int64_t B)Defined at line 599 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename U, typename V, typename T = common_uint<U, V>>T AbsoluteDifference (U X, V Y)Subtract two unsigned integers, X and Y, of type T and return the absolute
value of the result.
Defined at line 600 of file llvm/include/llvm/Support/MathExtras.h
-
bool operator> (const DynamicAPInt & A, int64_t B)Defined at line 604 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd (T X, T Y, bool * ResultOverflowed)Add two unsigned integers, X and Y, of type T. Clamp the result to the
maximum representable value of T on overflow. ResultOverflowed indicates if
the result is larger than the maximum representable value of type T.
Defined at line 608 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>int SaturatingAdd (T X, T Y, bool * ResultOverflowed)Add two unsigned integers, X and Y, of type T. Clamp the result to the
maximum representable value of T on overflow. ResultOverflowed indicates if
the result is larger than the maximum representable value of type T.
Defined at line 608 of file llvm/include/llvm/Support/MathExtras.h
-
Expected trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue)Return the trailing fraction of a hexadecimal number.
DIGITVALUE is the first hex digit of the fraction, P points to
the next digit.
Defined at line 608 of file llvm/lib/Support/APFloat.cpp
-
bool operator< (const DynamicAPInt & A, int64_t B)Defined at line 609 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool operator== (const early_inc_iterator_impl<WrappedIteratorT> & LHS, const early_inc_iterator_impl<WrappedIteratorT> & RHS)Defined at line 609 of file llvm/include/llvm/ADT/STLExtras.h
-
iterator_range split (StringRef Str, StringRef Separator)Split the specified string over a separator and return a range-compatible
iterable over its partitions. Used to permit conveniently iterating
over separated strings like so:
Defined at line 614 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator<= (const DynamicAPInt & A, int64_t B)Defined at line 614 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
iterator_range split (StringRef Str, char Separator)Defined at line 619 of file llvm/include/llvm/ADT/StringExtras.h
-
bool operator>= (const DynamicAPInt & A, int64_t B)Defined at line 619 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
raw_ostream & operator<< (raw_ostream & OS, const ConstantRange & CR)Defined at line 620 of file llvm/include/llvm/IR/ConstantRange.h
-
uint32_t getValueProfDataSize (ValueProfRecordClosure * Closure)Return the total size in bytes of the on-disk value profile data
given the data stored in Record.
Defined at line 622 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
bool operator== (int64_t A, const DynamicAPInt & B)Defined at line 624 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <class T, class... Ts>std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingAdd (T X, T Y, T Z, Ts... Args)Add multiple unsigned integers of type T. Clamp the result to the
maximum representable value of T on overflow.
Defined at line 624 of file llvm/include/llvm/Support/MathExtras.h
-
template <class T, class... Ts>int SaturatingAdd (T X, T Y, T Z, Ts... Args)Add multiple unsigned integers of type T. Clamp the result to the
maximum representable value of T on overflow.
Defined at line 624 of file llvm/include/llvm/Support/MathExtras.h
-
FunctionPass * createStraightLineStrengthReducePass ()===----------------------------------------------------------------------===//
StraightLineStrengthReduce - This pass strength-reduces some certain
instruction patterns in straight-line code.
Defined at line 626 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
-
bool operator!= (int64_t A, const DynamicAPInt & B)Defined at line 629 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
template <typename RangeT>iterator_range<early_inc_iterator_impl<detail::IterOfRange<RangeT>>> make_early_inc_range (RangeT && Range)Make a range that does early increment to allow mutation of the underlying
range without disrupting iteration.
The underlying iterator will be incremented immediately after it is
dereferenced, allowing deletion of the current node or insertion of nodes to
not disrupt iteration provided they do not invalidate the *next* iterator --
the current iterator can be invalidated.
This requires a very exact pattern of use that is only really suitable to
range based for loops and other range algorithms that explicitly guarantee
to dereference exactly once each element, and to increment exactly once each
element.
Defined at line 631 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename RangeT>int make_early_inc_range (RangeT && Range)Make a range that does early increment to allow mutation of the underlying
range without disrupting iteration.
The underlying iterator will be incremented immediately after it is
dereferenced, allowing deletion of the current node or insertion of nodes to
not disrupt iteration provided they do not invalidate the *next* iterator --
the current iterator can be invalidated.
This requires a very exact pattern of use that is only really suitable to
range based for loops and other range algorithms that explicitly guarantee
to dereference exactly once each element, and to increment exactly once each
element.
Defined at line 631 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingMultiply (T X, T Y, bool * ResultOverflowed)Multiply two unsigned integers, X and Y, of type T. Clamp the result to the
maximum representable value of T on overflow. ResultOverflowed indicates if
the result is larger than the maximum representable value of type T.
Defined at line 637 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>int SaturatingMultiply (T X, T Y, bool * ResultOverflowed)Multiply two unsigned integers, X and Y, of type T. Clamp the result to the
maximum representable value of T on overflow. ResultOverflowed indicates if
the result is larger than the maximum representable value of type T.
Defined at line 637 of file llvm/include/llvm/Support/MathExtras.h
-
lostFraction lostFractionThroughTruncation (const APFloatBase::integerPart * parts, unsigned int partCount, unsigned int bits)Return the fraction lost were a bignum truncated losing the least
significant BITS bits.
Defined at line 639 of file llvm/lib/Support/APFloat.cpp
-
ConversionResult ConvertUTF8toUTF32Impl (const UTF8 ** sourceStart, const UTF8 * sourceEnd, UTF32 ** targetStart, UTF32 * targetEnd, ConversionFlags flags, Boolean InputIsPartial)---------------------------------------------------------------------
Defined at line 640 of file llvm/lib/Support/ConvertUTF.cpp
-
void serializeValueProfRecordFrom (ValueProfRecord * This, ValueProfRecordClosure * Closure, uint32_t ValueKind, uint32_t NumValueSites)Extract value profile data of a function for the profile kind
from the
and serialize the data into
record instance.
Defined at line 642 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
template <typename To, typename From>decltype(auto) dyn_cast (const From & Val)dyn_cast
<X
> - Return the argument parameter cast to the specified type. This
casting operator returns null if the argument is of the wrong type, so it
can be used to test for a type as well as cast if successful. The value
passed in must be present, if not, use dyn_cast_if_present. This should be
used in the context of an if statement like this:
if (const Instruction *I = dyn_cast
<Instruction
>(myVal)) { ... }
Defined at line 643 of file llvm/include/llvm/Support/Casting.h
-
Value * lowerObjectSizeCall (IntrinsicInst * ObjectSize, const DataLayout & DL, const TargetLibraryInfo * TLI, bool MustSucceed)Try to turn a call to
@
llvm.objectsize into an integer value of the given
Type. Returns null on failure. If MustSucceed is true, this function will
not return null, and may return conservative values governed by the second
argument of the call to objectsize.
Defined at line 645 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
Value * lowerObjectSizeCall (IntrinsicInst * ObjectSize, const DataLayout & DL, const TargetLibraryInfo * TLI, AAResults * AA, bool MustSucceed, SmallVectorImpl<Instruction *> * InsertedInstructions)Defined at line 653 of file llvm/lib/Analysis/MemoryBuiltins.cpp
-
bool operator> (int64_t A, const DynamicAPInt & B)Defined at line 634 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool operator< (int64_t A, const DynamicAPInt & B)Defined at line 639 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
bool operator<= (int64_t A, const DynamicAPInt & B)Defined at line 644 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void initializeMachineOutlinerPass (PassRegistry & )Defined at line 602 of file llvm/lib/CodeGen/MachineOutliner.cpp
-
bool scaleShuffleMaskElts (unsigned int NumDstElts, ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)Attempt to narrow/widen the
shuffle mask to the
target
width. Internally this will call narrowShuffleMaskElts/widenShuffleMaskElts.
This will assert unless NumDstElts is a multiple of Mask.size (or
vice-versa). Returns false on failure, and ScaledMask will be in an
undefined state.
Defined at line 626 of file llvm/lib/Analysis/VectorUtils.cpp
-
void extractVectorParts (Register Reg, unsigned int NumElts, SmallVectorImpl<Register> & VRegs, MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI)Version which handles irregular sub-vector splits.
Defined at line 612 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void getShuffleMaskWithWidestElts (ArrayRef Mask, SmallVectorImpl<int> & ScaledMask)Repetitively apply `widenShuffleMaskElts()` for as long as it succeeds,
to get the shuffle mask with widest possible elements.
Defined at line 651 of file llvm/lib/Analysis/VectorUtils.cpp
-
void initializeStraightLineStrengthReduceLegacyPassPass (PassRegistry & )Defined at line 623 of file llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
-
template <typename To, typename From>decltype(auto) dyn_cast (From & Val)Defined at line 649 of file llvm/include/llvm/Support/Casting.h
-
bool operator>= (int64_t A, const DynamicAPInt & B)Defined at line 649 of file llvm/include/llvm/ADT/DynamicAPInt.h
-
void initializeMIR2VecPrinterLegacyPassPass (PassRegistry & )Defined at line 629 of file llvm/lib/CodeGen/MIR2Vec.cpp
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, int S)Allow the insertion operator to return the actual remark type rather than a
common base class. This allows returning the result of the insertion
directly by value, e.g. return OptimizationRemarkAnalysis(...)
<
<
"blah".
Defined at line 652 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, StringRef> S)Allow the insertion operator to return the actual remark type rather than a
common base class. This allows returning the result of the insertion
directly by value, e.g. return OptimizationRemarkAnalysis(...)
<
<
"blah".
Defined at line 652 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
MachineInstr * getOpcodeDef (unsigned int Opcode, Register Reg, const MachineRegisterInfo & MRI)See if Reg is defined by an single def instruction that is
Opcode. Also try to do trivial folding if it's a COPY with
same types. Returns null otherwise.
Defined at line 654 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeX86DAGToDAGISelLegacyPass (PassRegistry & )Defined at line 620 of file llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
-
template <typename To, typename From>decltype(auto) dyn_cast (From * Val)Defined at line 655 of file llvm/include/llvm/Support/Casting.h
-
void FillFunction (Function * F, Random & R)Defined at line 660 of file llvm/tools/llvm-stress/llvm-stress.cpp
-
template <typename To, typename From>decltype(auto) dyn_cast (std::unique_ptr<From> & Val)Defined at line 661 of file llvm/include/llvm/Support/Casting.h
-
template <typename To, typename From>decltype(auto) dyn_cast (int & Val)Defined at line 661 of file llvm/include/llvm/Support/Casting.h
-
lostFraction shiftRight (APFloatBase::integerPart * dst, unsigned int parts, unsigned int bits)Shift DST right BITS bits noting lost fraction.
Defined at line 661 of file llvm/lib/Support/APFloat.cpp
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::Argument> A)Defined at line 663 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
ExecutionEngine * unwrap (LLVMExecutionEngineRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 667 of file llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
-
LLVMExecutionEngineRef wrap (const ExecutionEngine * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 667 of file llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
-
ValueProfData * serializeValueProfDataFrom (ValueProfRecordClosure * Closure, ValueProfData * DstData)Extract value profile data of a function from the
and serialize the data into
if it is not NULL or heap
memory allocated by the
allocator method. If
is not null, the caller is expected to set the TotalSize
in DstData.
Defined at line 667 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
template <typename... X, class Y>bool isa_and_present (const Y & Val)isa_and_present
<X
> - Functionally identical to isa, except that a null value
is accepted.
Defined at line 669 of file llvm/include/llvm/Support/Casting.h
-
void parseCommandLineOptions (int & Options)A convenience function that calls cl::ParseCommandLineOptions on the given
set of options.
Defined at line 670 of file llvm/lib/LTO/LTOCodeGenerator.cpp
-
BasicBlock * SplitEdge (BasicBlock * From, BasicBlock * To, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)Split the edge connecting the specified blocks, and return the newly created
basic block between
and
Defined at line 660 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
APFloat getAPFloatFromSize (double Val, unsigned int Size)Returns an APFloat from Val converted to the appropriate size.
Defined at line 660 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void processShuffleMasks (ArrayRef Mask, unsigned int NumOfSrcRegs, unsigned int NumOfDestRegs, unsigned int NumOfUsedRegs, function_ref<void ()> NoInputAction, function_ref<void (ArrayRef<int>, unsigned int, unsigned int)> SingleInputAction, function_ref<void (ArrayRef<int>, unsigned int, unsigned int, bool)> ManyInputsAction)Splits and processes shuffle mask depending on the number of input and
output registers. The function does 2 main things: 1) splits the
source/destination vectors into real registers; 2) do the mask analysis to
identify which real registers are permuted. Then the function processes
resulting registers mask using provided action items. If no input register
is defined,
action is used. If only 1 input register is
used,
is used, otherwise
is used to
process > 2 input registers and masks.
Parameters
Mask Original shuffle mask.NumOfSrcRegs Number of source registers.NumOfDestRegs Number of destination registers.NumOfUsedRegs Number of actually used destination registers.Defined at line 665 of file llvm/lib/Analysis/VectorUtils.cpp
-
std::optional<APInt> ConstantFoldBinOp (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)Defined at line 673 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::setIsVerbose> V)Defined at line 674 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
lostFraction combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant)Combine the effect of two lost fractions.
Defined at line 674 of file llvm/lib/Support/APFloat.cpp
-
template <typename... X, class Y>bool isa_and_nonnull (const Y & Val)Defined at line 676 of file llvm/include/llvm/Support/Casting.h
-
Expected getSlabAllocSize (StringRef SizeString)Defined at line 680 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <class X, class Y>auto cast_if_present (const Y & Val)cast_if_present
<X
> - Functionally identical to cast, except that a null
value is accepted.
Defined at line 683 of file llvm/include/llvm/Support/Casting.h
-
template <typename T>std::enable_if_t<std::is_unsigned_v<T>, T> SaturatingMultiplyAdd (T X, T Y, T A, bool * ResultOverflowed)Multiply two unsigned integers, X and Y, and add the unsigned integer, A to
the product. Clamp the result to the maximum representable value of T on
overflow. ResultOverflowed indicates if the result is larger than the
maximum representable value of type T.
Defined at line 683 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>int SaturatingMultiplyAdd (T X, T Y, T A, bool * ResultOverflowed)Multiply two unsigned integers, X and Y, and add the unsigned integer, A to
the product. Clamp the result to the maximum representable value of T on
overflow. ResultOverflowed indicates if the result is larger than the
maximum representable value of type T.
Defined at line 683 of file llvm/include/llvm/Support/MathExtras.h
-
template <class RemarkT>decltype(auto) operator<< (RemarkT && R, std::enable_if_t<std::is_base_of_v<DiagnosticInfoOptimizationBase, std::remove_reference_t<RemarkT>>, DiagnosticInfoOptimizationBase::setExtraArgs> EA)Defined at line 685 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
raw_ostream & operator<< (raw_ostream & OS, const DbgMarker & Marker)Defined at line 690 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
template <class X, class Y>auto cast_if_present (Y & Val)Defined at line 690 of file llvm/include/llvm/Support/Casting.h
-
void initializeMachineBlockPlacementLegacyPass (PassRegistry & )Defined at line 691 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const LiveRange & LR)Defined at line 691 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
template <typename T>bool compareVectors (int & BB1, int & BB2)Defined at line 692 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <typename T>bool compareVectors (std::vector<T> & BB1, std::vector<T> & BB2)Defined at line 692 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
unsigned int HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2)The error from the true value, in half-ulps, on multiplying two
floating point numbers, which differ from the value they
approximate by at most HUE1 and HUE2 half-ulps, is strictly less
than the returned value.
See "How to Read Floating Point Numbers Accurately" by William D
Clinger.
Defined at line 695 of file llvm/lib/Support/APFloat.cpp
-
FunctionPass * createX86LowerAMXIntrinsicsLegacyPass ()Defined at line 699 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp
-
void CloneAndPruneIntoFromInst (Function * NewFunc, const Function * OldFunc, const Instruction * StartingInst, ValueToValueMapTy & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)This works like CloneAndPruneFunctionInto, except that it does not clone the
entire function. Instead it starts at an instruction provided by the caller
and copies (and prunes) only the code reachable from that instruction.
Defined at line 702 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void initializeX86LowerAMXIntrinsicsLegacyPassPass (PassRegistry & )Defined at line 696 of file llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp
-
void IntroduceControlFlow (Function * F, Random & R)Defined at line 696 of file llvm/tools/llvm-stress/llvm-stress.cpp
-
template <class X, class Y>auto cast_if_present (Y * Val)Defined at line 697 of file llvm/include/llvm/Support/Casting.h
-
template <class BlockT, class LoopT>void addInnerLoopsToHeadersMap (DenseMap<BlockT *, const LoopT *> & LoopHeaders, const LoopInfoBase<BlockT, LoopT> & LI, const LoopT & L)Defined at line 699 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <class BlockT, class LoopT>void addInnerLoopsToHeadersMap (int & LoopHeaders, const LoopInfoBase<BlockT, LoopT> & LI, const LoopT & L)Defined at line 699 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, T> AddOverflow (T X, T Y, T & Result)Add two signed integers, computing the two's complement truncated result,
returning true if overflow occurred.
Defined at line 701 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>int AddOverflow (T X, T Y, T & Result)Add two signed integers, computing the two's complement truncated result,
returning true if overflow occurred.
Defined at line 701 of file llvm/include/llvm/Support/MathExtras.h
-
unique_ptr createInProcessMemoryManager ()Defined at line 703 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <class X, class Y>auto cast_if_present (std::unique_ptr<Y> && Val)Defined at line 705 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>auto cast_if_present (int && Val)Defined at line 705 of file llvm/include/llvm/Support/Casting.h
-
template <>T * unwrap (LLVMDbgRecordRef P)Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
DbgRecord * unwrap (LLVMDbgRecordRef P)Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
LLVMDbgRecordRef wrap (const DbgRecord * P)Defined at line 706 of file llvm/include/llvm/IR/DebugProgramInstruction.h
-
template <class BlockT, class LoopT>void compareLoops (const LoopT * L, const LoopT * OtherL, DenseMap<BlockT *, const LoopT *> & OtherLoopHeaders)Defined at line 709 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
template <class BlockT, class LoopT>void compareLoops (const LoopT * L, const LoopT * OtherL, int & OtherLoopHeaders)Defined at line 709 of file llvm/include/llvm/Support/GenericLoopInfoImpl.h
-
APFloatBase::integerPart ulpsFromBoundary (const APFloatBase::integerPart * parts, unsigned int bits, bool isNearest)The number of ulps from the boundary (zero, or half if ISNEAREST)
when the least significant BITS are truncated. BITS cannot be
zero.
Defined at line 709 of file llvm/lib/Support/APFloat.cpp
-
void breakLoopBackedge (Loop * L, DominatorTree & DT, ScalarEvolution & SE, LoopInfo & LI, MemorySSA * MSSA)Remove the backedge of the specified loop. Handles loop nests and general
loop structures subject to the precondition that the loop has no parent
loop and has a single latch block. Preserves all listed analyses.
Defined at line 711 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
DataLayout * unwrap (LLVMTargetDataRef P)Defined at line 713 of file llvm/include/llvm/IR/DataLayout.h
-
template <class X, class Y>auto cast_or_null (const Y & Val)Provide a forwarding from cast_or_null to cast_if_present for current
users. This is deprecated and will be removed in a future patch, use
cast_if_present instead.
Defined at line 714 of file llvm/include/llvm/Support/Casting.h
-
SmallBitVector operator& (const SmallBitVector & LHS, const SmallBitVector & RHS)Defined at line 715 of file llvm/include/llvm/ADT/SmallBitVector.h
-
template <typename SV>void visitAll (const SCEV * Root, SV & Visitor)Use SCEVTraversal to visit all nodes in the given expression tree.
Defined at line 716 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
-
LLVMTargetDataRef wrap (const DataLayout * P)Defined at line 717 of file llvm/include/llvm/IR/DataLayout.h
-
template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>bool operator== (const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & RHS)Equality comparison for DenseMap.
Iterates over elements of LHS confirming that each (key, value) pair in LHS
is also in RHS, and that no additional pairs are in RHS.
Equivalent to N calls to RHS.find and N value comparisons. Amortized
complexity is linear, worst case is O(N^2) (if every hash collides).
Defined at line 717 of file llvm/include/llvm/ADT/DenseMap.h
-
template <class X, class Y>auto cast_or_null (Y & Val)Defined at line 718 of file llvm/include/llvm/Support/Casting.h
-
SmallBitVector operator| (const SmallBitVector & LHS, const SmallBitVector & RHS)Defined at line 722 of file llvm/include/llvm/ADT/SmallBitVector.h
-
template <typename PredTy>bool SCEVExprContains (const SCEV * Root, PredTy Pred)Return true if any node in
satisfies the predicate
Defined at line 723 of file llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
-
StringRef lexMIToken (StringRef Source, MIToken & Token, function_ref<void (StringRef::iterator, const Twine &)> ErrorCallback)Consume a single machine instruction token in the given source and return
the remaining source string.
Defined at line 725 of file llvm/lib/CodeGen/MIRParser/MILexer.cpp
-
Error collectGlobalObjectNameStrings (ArrayRef<std::string> NameStrs, bool doCompression, std::string & Result)Given a vector of strings (names of global objects like functions or,
virtual tables)
the method generates a combined string
that is ready to be serialized. The
string is comprised of
three fields: The first field is the length of the uncompressed strings, and
the the second field is the length of the zlib-compressed string. Both
fields are encoded in ULEB128. If
is false, the
third field is the uncompressed strings; otherwise it is the
compressed string. When the string compression is off, the
second field will have value zero.
Defined at line 714 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <class X, class Y>auto cast_or_null (Y * Val)Defined at line 722 of file llvm/include/llvm/Support/Casting.h
-
BasicBlock * SplitCallBrEdge (BasicBlock * CallBrBlock, BasicBlock * Succ, unsigned int SuccIdx, DomTreeUpdater * DTU, CycleInfo * CI, LoopInfo * LI, bool * UpdatedLI)Create a new intermediate target block for a callbr edge.
Create a new basic block between a callbr instruction and one of its
successors. The new block replaces the original successor in the callbr
instruction and unconditionally branches to the original successor. This
is useful for normalizing control flow, e.g., when transforming
irreducible loops.
Parameters
CallBrBlock block containing the callbr instructionSucc original successor blockSuccIdx index of the original successor in the callbr instructionDTU optional for updating the dominator treeCI optional for updating cycle membershipLI optional for updating loop membershipUpdatedLI optional output flag indicating if has been updatedDefined at line 725 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
template <class X, class Y>auto cast_or_null (std::unique_ptr<Y> && Val)Defined at line 726 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>auto cast_or_null (int && Val)Defined at line 726 of file llvm/include/llvm/Support/Casting.h
-
template <>ScaledNumber<DigitsT> operator+ (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)Defined at line 727 of file llvm/include/llvm/Support/ScaledNumber.h
-
Expected createSimpleRemoteMemoryManager (SimpleRemoteEPC & SREPC)Defined at line 727 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <typename T>int SubOverflow (T X, T Y, T & Result)Subtract two signed integers, computing the two's complement truncated
result, returning true if an overflow occurred.
Defined at line 727 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, T> SubOverflow (T X, T Y, T & Result)Subtract two signed integers, computing the two's complement truncated
result, returning true if an overflow occurred.
Defined at line 727 of file llvm/include/llvm/Support/MathExtras.h
-
template <>ScaledNumber<DigitsT> operator- (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)Defined at line 728 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>ScaledNumber<DigitsT> operator* (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)Defined at line 729 of file llvm/include/llvm/Support/ScaledNumber.h
-
SmallBitVector operator^ (const SmallBitVector & LHS, const SmallBitVector & RHS)Defined at line 729 of file llvm/include/llvm/ADT/SmallBitVector.h
-
template <>ScaledNumber<DigitsT> operator/ (const ScaledNumber<DigitsT> & L, const ScaledNumber<DigitsT> & R)Defined at line 730 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <class X, class Y>auto dyn_cast_if_present (const Y & Val)dyn_cast_if_present
<X
> - Functionally identical to dyn_cast, except that a
null (or none in the case of optionals) value is accepted.
Defined at line 732 of file llvm/include/llvm/Support/Casting.h
-
template <class DigitsT>ScaledNumber<DigitsT> operator<< (const ScaledNumber<DigitsT> & L, int16_t Shift)Defined at line 734 of file llvm/include/llvm/Support/ScaledNumber.h
-
uint32_t extractBits (uint64_t Val, uint32_t Hi, uint32_t Lo)Returns extract bits Val[Hi:Lo].
Defined at line 736 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
template <typename DerivedT, typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>bool operator!= (const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & LHS, const DenseMapBase<DerivedT, KeyT, ValueT, KeyInfoT, BucketT> & RHS)Inequality comparison for DenseMap.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Defined at line 737 of file llvm/include/llvm/ADT/DenseMap.h
-
template <class X, class Y>auto dyn_cast_if_present (Y & Val)Defined at line 738 of file llvm/include/llvm/Support/Casting.h
-
template <class DigitsT>ScaledNumber<DigitsT> operator>> (const ScaledNumber<DigitsT> & L, int16_t Shift)Defined at line 740 of file llvm/include/llvm/Support/ScaledNumber.h
-
std::optional<APFloat> ConstantFoldFPBinOp (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)Defined at line 741 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
uint64_t getLoongArchPageDelta (uint64_t dest, uint64_t pc, uint32_t type)Calculate the adjusted page delta between dest and PC. The code is copied
from lld and see comments there for more details.
Defined at line 742 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
template <class X, class Y>auto dyn_cast_if_present (Y * Val)Defined at line 744 of file llvm/include/llvm/Support/Casting.h
-
template <class DigitsT>raw_ostream & operator<< (raw_ostream & OS, const ScaledNumber<DigitsT> & X)Defined at line 746 of file llvm/include/llvm/Support/ScaledNumber.h
-
Expected createSharedMemoryManager (SimpleRemoteEPC & SREPC)Defined at line 748 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <class X, class Y>auto dyn_cast_or_null (const Y & Val)Forwards to dyn_cast_if_present to avoid breaking current users. This is
deprecated and will be removed in a future patch, use
dyn_cast_if_present instead.
Defined at line 753 of file llvm/include/llvm/Support/Casting.h
-
std::unique_ptr<Module> parseModule (const uint8_t * Data, size_t Size, LLVMContext & Context)Fuzzer friendly interface for the llvm bitcode parser.
Parameters
Data Bitcode we are going to parseSize Size of the 'Data' in bytesReturns
New module or nullptr in case of error
Defined at line 753 of file llvm/lib/FuzzMutate/IRMutator.cpp
-
template <typename T>int MulOverflow (T X, T Y, T & Result)Multiply two signed integers, computing the two's complement truncated
result, returning true if an overflow occurred.
Defined at line 753 of file llvm/include/llvm/Support/MathExtras.h
-
template <typename T>std::enable_if_t<std::is_signed_v<T>, T> MulOverflow (T X, T Y, T & Result)Multiply two signed integers, computing the two's complement truncated
result, returning true if an overflow occurred.
Defined at line 753 of file llvm/include/llvm/Support/MathExtras.h
-
void initializeObjCARCContractLegacyPassPass (PassRegistry & )Defined at line 754 of file llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
-
StringRef getPGOFuncNameVarInitializer (GlobalVariable * NameVar)Return the initializer in string of the PGO name var
Defined at line 752 of file llvm/lib/ProfileData/InstrProf.cpp
-
unsigned int powerOf5 (APFloatBase::integerPart * dst, unsigned int power)Place pow(5, power) in DST, and return the number of parts used.
DST must be at least one part larger than size of the answer.
Defined at line 754 of file llvm/lib/Support/APFloat.cpp
-
BasicBlock * unwrap (LLVMBasicBlockRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 757 of file llvm/include/llvm/IR/BasicBlock.h
-
LLVMBasicBlockRef wrap (const BasicBlock * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 757 of file llvm/include/llvm/IR/BasicBlock.h
-
template <class X, class Y>auto dyn_cast_or_null (Y & Val)Defined at line 757 of file llvm/include/llvm/Support/Casting.h
-
Error collectPGOFuncNameStrings (ArrayRef<GlobalVariable *> NameVars, std::string & Result, bool doCompression)Produce
string with the same format described above. The input
is vector of PGO function name variables that are referenced.
The global variable element in 'NameVars' is a string containing the pgo
name of a function. See `createPGOFuncNameVar` that creates these global
variables.
Defined at line 759 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <class X, class Y>auto dyn_cast_or_null (Y * Val)Defined at line 761 of file llvm/include/llvm/Support/Casting.h
-
template <>bool operator< (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator< (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 764 of file llvm/include/llvm/Support/ScaledNumber.h
-
raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::PartialMapping & PartMapping)Defined at line 764 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h
-
template <>bool operator> (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator> (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 765 of file llvm/include/llvm/Support/ScaledNumber.h
-
bool operator== (const ValueIterator & A, const ValueIterator & B)Defined at line 765 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
template <>bool operator== (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator== (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 766 of file llvm/include/llvm/Support/ScaledNumber.h
-
void initializePeepholeOptimizerLegacyPass (PassRegistry & )Defined at line 766 of file llvm/lib/CodeGen/PeepholeOptimizer.cpp
-
template <>bool operator!= (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator!= (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 767 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator<= (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 768 of file llvm/include/llvm/Support/ScaledNumber.h
-
bool operator!= (const ValueIterator & A, const ValueIterator & B)Defined at line 768 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
void setUnwindEdgeTo (Instruction * TI, BasicBlock * Succ)Sets the unwind edge of an instruction to a particular successor.
Defined at line 768 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
template <>bool operator>= (const ScaledNumber<DigitsT> & L, int32_t R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (int64_t L, const ScaledNumber<DigitsT> & R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (const ScaledNumber<DigitsT> & L, int64_t R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (int32_t L, const ScaledNumber<DigitsT> & R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (const ScaledNumber<DigitsT> & L, uint64_t R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (uint64_t L, const ScaledNumber<DigitsT> & R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (const ScaledNumber<DigitsT> & L, uint32_t R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
template <>bool operator>= (uint32_t L, const ScaledNumber<DigitsT> & R)Defined at line 769 of file llvm/include/llvm/Support/ScaledNumber.h
-
void cantFail (Error Err, const char * Msg)Report a fatal error if Err is a failure value.
This function can be used to wrap calls to fallible functions ONLY when it
is known that the Error will always be a success value. E.g.
Code
{.cpp} // foo only attempts the fallible operation if DoFallibleOperation is // true. If DoFallibleOperation is false then foo always returns // Error::success(). Error foo(bool DoFallibleOperation); cantFail(foo(false));Defined at line 769 of file llvm/include/llvm/Support/Error.h
-
raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::ValueMapping & ValMapping)Defined at line 771 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h
-
template <class X, class Y>int unique_dyn_cast (int & Val)unique_dyn_cast
<X
> - Given a unique_ptr
<Y
>, try to return a unique_ptr
<X
>,
taking ownership of the input pointer iff isa
<X
>(Val) is true. If the
cast is successful, From refers to nullptr on exit and the casted value
is returned. If the cast is unsuccessful, the function returns nullptr
and From is unchanged.
Defined at line 771 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>typename CastInfo<X, std::unique_ptr<Y>>::CastResultType unique_dyn_cast (std::unique_ptr<Y> & Val)unique_dyn_cast
<X
> - Given a unique_ptr
<Y
>, try to return a unique_ptr
<X
>,
taking ownership of the input pointer iff isa
<X
>(Val) is true. If the
cast is successful, From refers to nullptr on exit and the casted value
is returned. If the cast is unsuccessful, the function returns nullptr
and From is unchanged.
Defined at line 771 of file llvm/include/llvm/Support/Casting.h
-
void replaceCreatedSSACopys (PredicateInfo & PredInfo, Function & F)Replace bitcasts created by PredicateInfo with their operand.
Defined at line 771 of file llvm/lib/Transforms/Utils/PredicateInfo.cpp
-
size_t writeModule (const Module & M, uint8_t * Dest, size_t MaxSize)Fuzzer friendly interface for the llvm bitcode printer.
Parameters
M Module to printDest Location to store serialized moduleMaxSize Size of the destination bufferReturns
Number of bytes that were written. When module size exceeds MaxSize
returns 0 and leaves Dest unchanged.
Defined at line 773 of file llvm/lib/FuzzMutate/IRMutator.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::InstructionMapping & InstrMapping)Defined at line 777 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h
-
void setupEPCRemoteMemoryManager (SimpleRemoteEPC::Setup & S)Defined at line 777 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <class X, class Y>auto unique_dyn_cast (std::unique_ptr<Y> && Val)Defined at line 779 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>auto unique_dyn_cast (int && Val)Defined at line 779 of file llvm/include/llvm/Support/Casting.h
-
FunctionPass * createVirtRegRewriter (bool ClearVirtRegs)Defined at line 782 of file llvm/lib/CodeGen/VirtRegMap.cpp
-
bool isTLIScalarize (const TargetLibraryInfo & TLI, const CallInst & CI)Checks if a function is scalarizable according to the TLI, in
the sense that it should be vectorized and then expanded in
multiple scalar calls. This is represented in the
TLI via mappings that do not specify a vector name, as in the
following example:
const VecDesc VecIntrinsics[] = {
{"llvm.phx.abs.i32", "", 4}
};
Defined at line 783 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RegisterBankInfo::OperandsMapper & OpdMapper)Defined at line 784 of file llvm/include/llvm/CodeGen/RegisterBankInfo.h
-
std::unique_ptr<Module> parseAndVerify (const uint8_t * Data, size_t Size, LLVMContext & Context)Try to parse module and verify it. May output verification errors to the
errs().
Returns
New module or nullptr in case of error.
Defined at line 785 of file llvm/lib/FuzzMutate/IRMutator.cpp
-
template <class X, class Y>typename CastInfo<X, std::unique_ptr<Y>>::CastResultType unique_dyn_cast_or_null (std::unique_ptr<Y> & Val)unique_dyn_cast_or_null
<X
> - Functionally identical to unique_dyn_cast,
except that a null value is accepted.
Defined at line 786 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>int unique_dyn_cast_or_null (int & Val)unique_dyn_cast_or_null
<X
> - Functionally identical to unique_dyn_cast,
except that a null value is accepted.
Defined at line 786 of file llvm/include/llvm/Support/Casting.h
-
Expected getTestObjectFileInterface (Session & S, MemoryBufferRef O)Defined at line 792 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <class X, class Y>auto unique_dyn_cast_or_null (std::unique_ptr<Y> && Val)Defined at line 794 of file llvm/include/llvm/Support/Casting.h
-
template <class X, class Y>auto unique_dyn_cast_or_null (int && Val)Defined at line 794 of file llvm/include/llvm/Support/Casting.h
-
template <typename T>T cantFail (Expected<T> ValOrErr, const char * Msg)Report a fatal error if ValOrErr is a failure value, otherwise unwraps and
returns the contained value.
This function can be used to wrap calls to fallible functions ONLY when it
is known that the Error will always be a success value. E.g.
Code
{.cpp} // foo only attempts the fallible operation if DoFallibleOperation is // true. If DoFallibleOperation is false then foo always returns an int. Expected<int> foo(bool DoFallibleOperation); int X = cantFail(foo(false));Defined at line 797 of file llvm/include/llvm/Support/Error.h
-
bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, int CtxI, const DominatorTree * DT, unsigned int Depth)Defined at line 799 of file llvm/include/llvm/Analysis/ValueTracking.h
-
bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, ilist_iterator_w_bits CtxI, const DominatorTree * DT, unsigned int Depth)Defined at line 799 of file llvm/include/llvm/Analysis/ValueTracking.h
-
bool canWidenCallReturnType (Type * Ty)Returns true if the call return type `Ty` can be widened by the loop
vectorizer.
Defined at line 805 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
void reportVectorizationInfo (StringRef Msg, StringRef ORETag, OptimizationRemarkEmitter * ORE, Loop * TheLoop, Instruction * I, DebugLoc DL)Reports an informative message: print
for debugging purposes as well
as an optimization remark. Uses either
as location of the remark, or
otherwise
If
is passed, use it as debug location for the
remark. If
is passed, use it as debug location for the remark.
Defined at line 805 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-
void reportVectorization (OptimizationRemarkEmitter * ORE, Loop * TheLoop, VectorizationFactor VF, unsigned int IC)Report successful vectorization of the loop. In case an outer loop is
vectorized, prepend "outer" to the vectorization remark.
Defined at line 818 of file llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-
template <unsigned ElementSize>bool operator|= (SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> * RHS)Convenience functions to allow Or and And without dereferencing in the user
code.
Defined at line 820 of file llvm/include/llvm/ADT/SparseBitVector.h
-
unsigned int partAsHex (char * dst, APFloatBase::integerPart part, unsigned int count, const char * hexDigitChars)Write out an integerPart in hexadecimal, starting with the most
significant nibble. Write out exactly COUNT hexdigits, return
COUNT.
Defined at line 820 of file llvm/lib/Support/APFloat.cpp
-
bool operator== (const NameIterator & A, const NameIterator & B)Defined at line 822 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
void updateChildIncompleteness (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & ChildInfo)Helper that updates the completeness of the current DIE based on the
completeness of one of its children. It depends on the incompleteness of
the children already being computed.
Defined at line 822 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
int parseReducerWorkItem (StringRef ToolName, StringRef Filename, LLVMContext & Ctxt, int & TM, bool IsMIR)Defined at line 822 of file llvm/tools/llvm-reduce/ReducerWorkItem.cpp
-
template <class ELFT>unique_ptr createELFDumper (const ELFObjectFile<ELFT> & Obj, ScopedPrinter & Writer)Defined at line 823 of file llvm/tools/llvm-readobj/ELFDumper.cpp
-
bool operator!= (const NameIterator & A, const NameIterator & B)Defined at line 825 of file llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h
-
template <unsigned ElementSize>bool operator|= (SparseBitVector<ElementSize> * LHS, const SparseBitVector<ElementSize> & RHS)Defined at line 826 of file llvm/include/llvm/ADT/SparseBitVector.h
-
raw_ostream & operator<< (raw_ostream & OS, const indent & Indent)Defined at line 827 of file llvm/include/llvm/Support/raw_ostream.h
-
template <typename T>T & cantFail (Expected<T &> ValOrErr, const char * Msg)Report a fatal error if ValOrErr is a failure value, otherwise unwraps and
returns the contained reference.
This function can be used to wrap calls to fallible functions ONLY when it
is known that the Error will always be a success value. E.g.
Code
{.cpp} // foo only attempts the fallible operation if DoFallibleOperation is // true. If DoFallibleOperation is false then foo always returns a Bar&. Expected<Bar&> foo(bool DoFallibleOperation); Bar &X = cantFail(foo(false));Defined at line 828 of file llvm/include/llvm/Support/Error.h
-
template <typename T, typename U, typename... Args>detail::zippy<detail::zip_shortest, T, U, Args...> zip (T && t, U && u, Args &&... args)zip iterator for two or more iteratable types. Iteration continues until the
end of the *shortest* iteratee is reached.
Defined at line 829 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T, typename U, typename... Args>int zip (T && t, U && u, Args &&... args)zip iterator for two or more iteratable types. Iteration continues until the
end of the *shortest* iteratee is reached.
Defined at line 829 of file llvm/include/llvm/ADT/STLExtras.h
-
template <unsigned ElementSize>bool operator&= (SparseBitVector<ElementSize> * LHS, const SparseBitVector<ElementSize> & RHS)Defined at line 832 of file llvm/include/llvm/ADT/SparseBitVector.h
-
unique_ptr createELFDumper (const object::ELFObjectFileBase & Obj, ScopedPrinter & Writer)Defined at line 832 of file llvm/tools/llvm-readobj/ELFDumper.cpp
-
FunctionPass * createX86LoadValueInjectionLoadHardeningPass ()Defined at line 803 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
-
template <unsigned ElementSize>bool operator&= (SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> * RHS)Defined at line 838 of file llvm/include/llvm/ADT/SparseBitVector.h
-
char * writeUnsignedDecimal (char * dst, unsigned int n)Write out an unsigned decimal integer.
Defined at line 838 of file llvm/lib/Support/APFloat.cpp
-
bool operator== (const ResourceSegments & c1, const ResourceSegments & c2)Defined at line 839 of file llvm/include/llvm/CodeGen/MachineScheduler.h
-
template <typename T, typename U, typename... Args>detail::zippy<detail::zip_first, T, U, Args...> zip_equal (T && t, U && u, Args &&... args)zip iterator that assumes that all iteratees have the same length.
In builds with assertions on, this assumption is checked before the
iteration starts.
Defined at line 839 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T, typename U, typename... Args>int zip_equal (T && t, U && u, Args &&... args)zip iterator that assumes that all iteratees have the same length.
In builds with assertions on, this assumption is checked before the
iteration starts.
Defined at line 839 of file llvm/include/llvm/ADT/STLExtras.h
-
void updateRefIncompleteness (const DWARFDie & Die, CompileUnit & CU, CompileUnit::DIEInfo & RefInfo)Helper that updates the completeness of the current DIE based on the
completeness of the DIEs it references. It depends on the incompleteness of
the referenced DIE already being computed.
Defined at line 842 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
llvm::raw_ostream & operator<< (llvm::raw_ostream & os, const ResourceSegments & Segments)Defined at line 843 of file llvm/include/llvm/CodeGen/MachineScheduler.h
-
bool canReplacePointersInUseIfEqual (const Use & U, const Value * To, const DataLayout & DL)Defined at line 845 of file llvm/lib/Analysis/Loads.cpp
-
template <unsigned ElementSize>SparseBitVector<ElementSize> operator| (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)Convenience functions for infix union, intersection, difference operators.
Defined at line 846 of file llvm/include/llvm/ADT/SparseBitVector.h
-
template <typename T, typename = decltype(std::declval<raw_ostream &>() << std::declval<const T &>())>raw_ostream & operator<< (raw_ostream & OS, const std::optional<T> & O)Defined at line 846 of file llvm/include/llvm/Support/raw_ostream.h
-
BitVector::size_type capacity_in_bytes (const BitVector & X)Defined at line 847 of file llvm/include/llvm/ADT/BitVector.h
-
template <typename T, typename U, typename... Args>detail::zippy<detail::zip_first, T, U, Args...> zip_first (T && t, U && u, Args &&... args)zip iterator that, for the sake of efficiency, assumes the first iteratee to
be the shortest. Iteration continues until the end of the first iteratee is
reached. In builds with assertions on, we check that the assumption about
the first iteratee being the shortest holds.
Defined at line 852 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T, typename U, typename... Args>int zip_first (T && t, U && u, Args &&... args)zip iterator that, for the sake of efficiency, assumes the first iteratee to
be the shortest. Iteration continues until the end of the first iteratee is
reached. In builds with assertions on, we check that the assumption about
the first iteratee being the shortest holds.
Defined at line 852 of file llvm/include/llvm/ADT/STLExtras.h
-
template <unsigned ElementSize>SparseBitVector<ElementSize> operator& (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)Defined at line 855 of file llvm/include/llvm/ADT/SparseBitVector.h
-
char * writeSignedDecimal (char * dst, int value)Write out a signed decimal integer.
Defined at line 856 of file llvm/lib/Support/APFloat.cpp
-
Error loadProcessSymbols (Session & S)Defined at line 858 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <unsigned ElementSize>SparseBitVector<ElementSize> operator- (const SparseBitVector<ElementSize> & LHS, const SparseBitVector<ElementSize> & RHS)Defined at line 864 of file llvm/include/llvm/ADT/SparseBitVector.h
-
bool canReplacePointersIfEqual (const Value * From, const Value * To, const DataLayout & DL)Returns true if a pointer value
can be replaced with another pointer
value
if they are deemed equal through some means (e.g. information from
conditions).
NOTE: The current implementation allows replacement in Icmp and PtrToInt
instructions, as well as when we are replacing with a null pointer.
Additionally it also allows replacement of pointers when both pointers have
the same underlying object.
Defined at line 865 of file llvm/lib/Analysis/Loads.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const TreePatternNode & TPN)Defined at line 866 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.h
-
Error loadDylibs (Session & S)Defined at line 871 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
APFloat harrisonUlp (const APFloat & X)Compute the ULP of the input using a definition from:
Jean-Michel Muller. On the definition of ulp(x). [Research Report] RR-5504,
LIP RR-2005-09, INRIA, LIP. 2005, pp.16. inria-00070503
Defined at line 872 of file llvm/lib/Support/APFloat.cpp
-
template <unsigned ElementSize>void dump (const SparseBitVector<ElementSize> & LHS, raw_ostream & out)Dump a SparseBitVector to a stream
Defined at line 874 of file llvm/include/llvm/ADT/SparseBitVector.h
-
template <typename FunctionPassT>ModuleToFunctionPassAdaptor createModuleToFunctionPassAdaptor (FunctionPassT && Pass, bool EagerlyInvalidate)A function to deduce a function pass type and wrap it in the
templated adaptor.
Defined at line 875 of file llvm/include/llvm/IR/PassManager.h
-
template <typename AnalysisT, typename IRUnitT, typename AnalysisManagerT, typename... ExtraArgTs>bool parseAnalysisUtilityPasses (StringRef AnalysisName, StringRef PipelineName, PassManager<IRUnitT, AnalysisManagerT, ExtraArgTs...> & PM)This utility template takes care of adding require
<
> and invalidate
<
>
passes for an analysis to a given
It is intended to be used
during parsing of a pass pipeline when parsing a single PipelineName.
When registering a new function analysis FancyAnalysis with the pass
pipeline name "fancy-analysis", a matching ParsePipelineCallback could look
like this:
static bool parseFunctionPipeline(StringRef Name, FunctionPassManager
&FPM
,
ArrayRef
<PipelineElement
> P) {
if (parseAnalysisUtilityPasses
<FancyAnalysis
>("fancy-analysis", Name,
FPM))
return true;
return false;
}
Defined at line 883 of file llvm/include/llvm/Passes/PassBuilder.h
-
Expected launchExecutor ()Defined at line 883 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
bool operator== (StringRef LHS, StringRef RHS)@
{
Defined at line 892 of file llvm/include/llvm/ADT/StringRef.h
-
SelectPatternResult matchSelectPattern (const Value * V, const Value *& LHS, const Value *& RHS)Defined at line 893 of file llvm/include/llvm/Analysis/ValueTracking.h
-
LinearExpression decomposeLinearExpression (const DataLayout & DL, Value * Ptr)Decompose a pointer into a linear expression. This may look through
multiple GEPs.
Defined at line 893 of file llvm/lib/Analysis/Loads.cpp
-
bool isODRCanonicalCandidate (const DWARFDie & Die, CompileUnit & CU)Defined at line 894 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool operator!= (StringRef LHS, StringRef RHS)Defined at line 900 of file llvm/include/llvm/ADT/StringRef.h
-
raw_ostream & operator<< (raw_ostream & OS, const Value & V)Defined at line 900 of file llvm/include/llvm/IR/Value.h
-
bool operator< (StringRef LHS, StringRef RHS)Defined at line 902 of file llvm/include/llvm/ADT/StringRef.h
-
bool operator<= (StringRef LHS, StringRef RHS)Defined at line 906 of file llvm/include/llvm/ADT/StringRef.h
-
bool operator> (StringRef LHS, StringRef RHS)Defined at line 910 of file llvm/include/llvm/ADT/StringRef.h
-
bool operator>= (StringRef LHS, StringRef RHS)Defined at line 914 of file llvm/include/llvm/ADT/StringRef.h
-
std::string & operator+= (std::string & buffer, StringRef string)Defined at line 918 of file llvm/include/llvm/ADT/StringRef.h
-
std::string & operator+= (std::string & buffer, StringRef string)Defined at line 918 of file llvm/include/llvm/ADT/StringRef.h
-
raw_ostream & operator<< (raw_ostream & OS, const LiveInterval::SubRange & SR)Defined at line 925 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
template <typename CycleT>bool insertIfNotContained (SmallVector<CycleT *> & Cycles, CycleT * Candidate)Add
to
if it is not already contained in
Returns
true iff
was added to
Defined at line 928 of file llvm/include/llvm/ADT/GenericUniformityImpl.h
-
template <typename CycleT>bool insertIfNotContained (int & Cycles, CycleT * Candidate)Add
to
if it is not already contained in
Returns
true iff
was added to
Defined at line 928 of file llvm/include/llvm/ADT/GenericUniformityImpl.h
-
raw_ostream & operator<< (raw_ostream & OS, const LiveInterval & LI)Defined at line 931 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
bool operator< (SlotIndex V, const LiveRange::Segment & S)Defined at line 939 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
Type * checkGEPType (Type * Ty)checkGEPType - Simple wrapper function to give a better assertion failure
message on bad indexes for a gep instruction.
Defined at line 942 of file llvm/include/llvm/IR/Instructions.h
-
bool operator< (const LiveRange::Segment & S, SlotIndex V)Defined at line 943 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
template <typename CycleT, typename BlockT>const CycleT * getExtDivCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock)Return the outermost cycle made divergent by branch outside it.
If two paths that diverged outside an irreducible cycle join
inside that cycle, then that whole cycle is assumed to be
divergent. This does not apply if the cycle is reducible.
Defined at line 943 of file llvm/include/llvm/ADT/GenericUniformityImpl.h
-
Error handleErrorImpl (unique_ptr Payload)Defined at line 946 of file llvm/include/llvm/Support/Error.h
-
Error handleErrorImpl (int Payload)Defined at line 946 of file llvm/include/llvm/Support/Error.h
-
void createPHIsForSplitLoopExit (ArrayRef<BasicBlock *> Preds, BasicBlock * SplitBB, BasicBlock * DestBB)When a loop exit edge is split, LCSSA form may require new PHIs in the new
exit block. This function inserts the new PHIs, as needed. Preds is a list
of preds inside the loop, SplitBB is the new loop exit block, and DestBB is
the old loop exit, now the successor of SplitBB.
Defined at line 949 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
template <typename HandlerT, typename... HandlerTs>Error handleErrorImpl (int Payload, HandlerT && Handler, HandlerTs &&... Handlers)Defined at line 951 of file llvm/include/llvm/Support/Error.h
-
template <typename HandlerT, typename... HandlerTs>Error handleErrorImpl (unique_ptr Payload, HandlerT && Handler, HandlerTs &&... Handlers)Defined at line 951 of file llvm/include/llvm/Support/Error.h
-
Error createTCPSocketError (Twine Details)Defined at line 959 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
Expected connectTCPSocket (basic_string Host, basic_string PortStr)Defined at line 966 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <typename T, typename U, typename... Args>detail::zip_longest_range<T, U, Args...> zip_longest (T && t, U && u, Args &&... args)Iterate over two or more iterators at the same time. Iteration continues
until all iterators reach the end. The std::optional only contains a value
if the iterator has not reached the end.
Defined at line 980 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>const CycleT * getIntDivCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock, const DominatorTreeT & DT, ContextT & Context)Return the outermost cycle made divergent by branch inside it.
This checks the "diverged entry" criterion defined in the
docs/ConvergenceAnalysis.html.
Defined at line 980 of file llvm/include/llvm/ADT/GenericUniformityImpl.h
-
ErrorOr canonicalizePath (StringRef P)Defined at line 989 of file llvm/lib/Object/ArchiveWriter.cpp
-
template <typename... HandlerTs>void handleAllErrors (Error E, HandlerTs &&... Handlers)Behaves the same as handleErrors, except that by contract all errors
*must* be handled by the given handlers (i.e. there must be no remaining
errors after running the handlers, or llvm_unreachable is called).
Defined at line 990 of file llvm/include/llvm/Support/Error.h
-
void handleAllErrors (Error E)Check that E is a non-error, then drop it.
If E is an error, llvm_unreachable will be called.
Defined at line 996 of file llvm/include/llvm/Support/Error.h
-
raw_ostream & operator<< (raw_ostream & OS, const LiveRangeUpdater & X)Defined at line 1001 of file llvm/include/llvm/CodeGen/LiveInterval.h
-
Expected connectToExecutor ()Defined at line 1004 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
template <typename ContextT, typename CycleT, typename BlockT, typename DominatorTreeT>const CycleT * getOutermostDivergentCycle (const CycleT * Cycle, const BlockT * DivTermBlock, const BlockT * JoinBlock, const DominatorTreeT & DT, ContextT & Context)Defined at line 1018 of file llvm/include/llvm/ADT/GenericUniformityImpl.h
-
void exportDebugifyStats (StringRef Path, const DebugifyStatsMap & Map)Defined at line 1024 of file llvm/lib/Transforms/Utils/Debugify.cpp
-
uint16_t applyPPClo (uint64_t value)Relocation masks following the #lo(value), #hi(value), #ha(value),
#higher(value), #highera(value), #highest(value), and #highesta(value)
macros defined in section 4.5.1. Relocation Types of the PPC-elf64abi
document.
Defined at line 1042 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
template <typename T, typename RecoveryFtor, typename... HandlerTs>Expected<T> handleExpected (Expected<T> ValOrErr, RecoveryFtor && RecoveryPath, HandlerTs &&... Handlers)Handle any errors (if present) in an Expected
<T
>, then try a recovery path.
If the incoming value is a success value it is returned unmodified. If it
is a failure value then it the contained error is passed to handleErrors.
If handleErrors is able to handle the error then the RecoveryPath functor
is called to supply the final result. If handleErrors is not able to
handle all errors then the unhandled errors are returned.
This utility enables the follow pattern:
Code
{.cpp} enum FooStrategy { Aggressive, Conservative }; Expected<Foo> foo(FooStrategy S); auto ResultOrErr = handleExpected( foo(Aggressive), []() { return foo(Conservative); }, [](AggressiveStrategyError&) { // Implicitly conusme this - we'll recover by using a conservative // strategy. });Defined at line 1042 of file llvm/include/llvm/Support/Error.h
-
uint16_t applyPPChi (uint64_t value)Defined at line 1044 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
uint16_t applyPPCha (uint64_t value)Defined at line 1048 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
uint16_t applyPPChigher (uint64_t value)Defined at line 1052 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
uint16_t applyPPChighera (uint64_t value)Defined at line 1056 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
Expected createLazyLinkingSupport (Session & S)Defined at line 1059 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
uint16_t applyPPChighest (uint64_t value)Defined at line 1060 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const MachineOperand & MO)Defined at line 1061 of file llvm/include/llvm/CodeGen/MachineOperand.h
-
uint16_t applyPPChighesta (uint64_t value)Defined at line 1064 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
raw_ostream & operator<< (raw_ostream & O, const Module & M)An raw_ostream inserter for modules.
Defined at line 1069 of file llvm/include/llvm/IR/Module.h
-
bool promoteLoopAccessesToScalars (const SmallSetVector<Value *, 8> & , SmallVectorImpl<BasicBlock *> & , int & , SmallVectorImpl<MemoryAccess *> & , PredIteratorCache & , LoopInfo * , DominatorTree * , AssumptionCache * AC, const TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , OptimizationRemarkEmitter * , bool AllowSpeculation, bool HasReadsOutsideSet)Try to promote memory values to scalars by sinking stores out of
the loop and moving loads to before the loop. We do this by looping over
the stores in the loop, looking for stores to Must pointers which are
loop invariant. It takes a set of must-alias values, Loop exit blocks
vector, loop exit blocks insertion point vector, PredIteratorCache,
LoopInfo, DominatorTree, Loop, AliasSet information for all instructions
of the loop and loop safety information as arguments.
Diagnostics is emitted via
It returns changed status.
is whether values should be hoisted even if they are not
guaranteed to execute in the loop, but are safe to speculatively execute.
Defined at line of file
-
template <typename IRUnitT>void printIRUnitNameForStackTrace (raw_ostream & OS, const IRUnitT & IR)Defined at line of file
-
void printIRUnitNameForStackTrace (raw_ostream & OS, const Module & IR)Defined at line of file
-
DiagnosticInfo * unwrap (LLVMDiagnosticInfoRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1065 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
LLVMDiagnosticInfoRef wrap (const DiagnosticInfo * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1065 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
Module * unwrap (LLVMModuleRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1075 of file llvm/include/llvm/IR/Module.h
-
LLVMModuleRef wrap (const Module * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1075 of file llvm/include/llvm/IR/Module.h
-
Value * unwrap (LLVMValueRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1077 of file llvm/include/llvm/IR/Value.h
-
template <>T * unwrap (LLVMValueRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1077 of file llvm/include/llvm/IR/Value.h
-
LLVMValueRef wrap (const Value * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1077 of file llvm/include/llvm/IR/Value.h
-
Module * unwrap (LLVMModuleProviderRef MP)LLVMModuleProviderRef exists for historical reasons, but now just holds a
Module.
Defined at line 1080 of file llvm/include/llvm/IR/Module.h
-
Value ** unwrap (LLVMValueRef * Vals)Specialized opaque value conversions.
Defined at line 1080 of file llvm/include/llvm/IR/Value.h
-
void consumeError (Error Err)Consume a Error without doing anything. This method should be used
only where an error can be considered a reasonable and expected return
value.
Uses of this method are potentially indicative of design problems: If it's
legitimate to do nothing while processing an "error", the error-producer
might be more clearly refactored to return an std::optional
<T
>.
Defined at line 1083 of file llvm/include/llvm/Support/Error.h
-
template <typename T>T ** unwrap (LLVMValueRef * Vals, unsigned int Length)Defined at line 1085 of file llvm/include/llvm/IR/Value.h
-
Error writeLazyExecOrder (Session & S)Defined at line 1091 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
LLVMValueRef * wrap (const Value ** Vals)Defined at line 1094 of file llvm/include/llvm/IR/Value.h
-
template <typename T>std::optional<T> expectedToOptional (Expected<T> && E)Convert an Expected to an Optional without doing anything. This method
should be used only where an error can be considered a reasonable and
expected return value.
Uses of this method are potentially indicative of problems: perhaps the
error should be propagated further, or the error-producer should just
return an Optional in the first place.
Defined at line 1094 of file llvm/include/llvm/Support/Error.h
-
template <typename T>std::optional<T> expectedToStdOptional (Expected<T> && E)Defined at line 1101 of file llvm/include/llvm/Support/Error.h
-
bool errorToBool (Error Err)Helper for converting an Error to a bool.
This method returns true if Err is in an error state, or false if it is
in a success state. Puts Err in a checked state in both cases (unlike
Error::operator bool(), which only does this for success states).
Defined at line 1113 of file llvm/include/llvm/Support/Error.h
-
bool findHistogram (LoadInst * LI, StoreInst * HSt, Loop * TheLoop, const PredicatedScalarEvolution & PSE, SmallVectorImpl<HistogramInfo> & Histograms)Find histogram operations that match high-level code in loops:
It matches a pattern starting from
which Stores to the 'buckets'
array the computed histogram. It uses a BinOp to sum all counts, storing
them using a loop-variant index Load from the 'indices' input array.
On successful matches it updates the STATISTIC 'HistogramsDetected',
regardless of hardware support. When there is support, it additionally
stores the BinOp/Load pairs in
as well the pointers
used to update histogram in
Code
buckets[indices[i]]+=step;Defined at line 1127 of file llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
-
uint32_t getNumValueKindsInstrProf (const void * Record)ValueProfRecordClosure Interface implementation for InstrProfRecord
class. These C wrappers are used as adaptors so that C++ code can be
invoked as callbacks.
Defined at line 1136 of file llvm/lib/ProfileData/InstrProf.cpp
-
void verifyKeepChain (CompileUnit & CU)Verify the keep chain by looking for DIEs that are kept but who's parent
isn't.
Defined at line 1137 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
uint32_t getNumValueSitesInstrProf (const void * Record, uint32_t VKind)Defined at line 1140 of file llvm/lib/ProfileData/InstrProf.cpp
-
uint32_t getNumValueDataInstrProf (const void * Record, uint32_t VKind)Defined at line 1145 of file llvm/lib/ProfileData/InstrProf.cpp
-
DiagnosticSeverity getDiagnosticSeverity (DiagKind DK)Defined at line 1148 of file llvm/include/llvm/IR/DiagnosticInfo.h
-
template <typename ValueT, typename... RangeTs>detail::concat_range<ValueT, RangeTs...> concat (RangeTs &&... Ranges)Returns a concatenated range across two or more ranges. Does not modify the
ranges.
The desired value type must be explicitly specified.
Defined at line 1149 of file llvm/include/llvm/ADT/STLExtras.h
-
uint32_t getNumValueDataForSiteInstrProf (const void * R, uint32_t VK, uint32_t S)Defined at line 1150 of file llvm/lib/ProfileData/InstrProf.cpp
-
void getValueForSiteInstrProf (const void * R, InstrProfValueData * Dst, uint32_t K, uint32_t S)Defined at line 1156 of file llvm/lib/ProfileData/InstrProf.cpp
-
ValueProfData * allocValueProfDataInstrProf (size_t TotalSizeInBytes)Defined at line 1162 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool operator== (const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & LHS, const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & RHS)Defined at line 1217 of file llvm/include/llvm/ADT/DenseMap.h
-
template <>T * unwrap (LLVMDIBuilderRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h
-
DIBuilder * unwrap (LLVMDIBuilderRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h
-
LLVMDIBuilderRef wrap (const DIBuilder * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1224 of file llvm/include/llvm/IR/DIBuilder.h
-
bool operator!= (const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & LHS, const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConst> & RHS)Defined at line 1228 of file llvm/include/llvm/ADT/DenseMap.h
-
error_code errnoAsErrorCode ()Helper to get errno as an std::error_code.
errno should always be represented using the generic category as that's what
both libc++ and libstdc++ do. On POSIX systems you can also represent them
using the system category, however this makes them compare differently for
values outside of those used by `std::errc` if one is generic and the other
is system.
See the libc++ and libstdc++ implementations of `default_error_condition` on
the system category for more details on what the difference is.
Defined at line 1240 of file llvm/include/llvm/Support/Error.h
-
template <typename T>Expected<T> errorOrToExpected (ErrorOr<T> && EO)Convert an ErrorOr
<T
> to an Expected
<T
>.
Defined at line 1245 of file llvm/include/llvm/Support/Error.h
-
unique_ptr allocValueProfData (uint32_t TotalSize)Defined at line 1247 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <typename T>ErrorOr<T> expectedToErrorOr (Expected<T> && E)Convert an Expected
<T
> to an ErrorOr
<T
>.
Defined at line 1252 of file llvm/include/llvm/Support/Error.h
-
template <typename KeyT, typename ValueT, typename KeyInfoT>size_t capacity_in_bytes (const int & X)Defined at line 1267 of file llvm/include/llvm/ADT/DenseMap.h
-
template <typename KeyT, typename ValueT, typename KeyInfoT>size_t capacity_in_bytes (const DenseMap<KeyT, ValueT, KeyInfoT> & X)Defined at line 1267 of file llvm/include/llvm/ADT/DenseMap.h
-
void applyUTypeImmRISCV (uint8_t * InstrAddr, uint32_t Imm)Defined at line 1267 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
void applyITypeImmRISCV (uint8_t * InstrAddr, uint32_t Imm)Defined at line 1273 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
-
template <typename T, unsigned N>size_t capacity_in_bytes (const SmallVector<T, N> & X)Defined at line 1293 of file llvm/include/llvm/ADT/SmallVector.h
-
template <unsigned Size, typename R>SmallVector<ValueTypeFromRangeType<R>, Size> to_vector (R && Range)Given a range of type R, iterate the entire range and return a
SmallVector with elements of the vector. This is useful, for example,
when you want to iterate a range and then sort the results.
Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h
-
template <unsigned Size, typename R>SmallVector<ValueTypeFromRangeType<R>, Size> to_vector (R && Range)Given a range of type R, iterate the entire range and return a
SmallVector with elements of the vector. This is useful, for example,
when you want to iterate a range and then sort the results.
Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h
-
template <unsigned Size, typename R>int to_vector (R && Range)Given a range of type R, iterate the entire range and return a
SmallVector with elements of the vector. This is useful, for example,
when you want to iterate a range and then sort the results.
Defined at line 1305 of file llvm/include/llvm/ADT/SmallVector.h
-
template <typename... Ts>Error createStringError (error_code EC, const char * Fmt, const Ts &... Vals)Create formatted StringError object.
Defined at line 1305 of file llvm/include/llvm/Support/Error.h
-
upward_defs_iterator upward_defs_begin (const MemoryAccessPair & Pair, DominatorTree & DT)Defined at line 1307 of file llvm/include/llvm/Analysis/MemorySSA.h
-
template <typename R>SmallVector<ValueTypeFromRangeType<R>> to_vector (R && Range)Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h
-
template <typename R>SmallVector<ValueTypeFromRangeType<R>> to_vector (R && Range)Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h
-
template <typename R>int to_vector (R && Range)Defined at line 1309 of file llvm/include/llvm/ADT/SmallVector.h
-
upward_defs_iterator upward_defs_end ()Defined at line 1312 of file llvm/include/llvm/Analysis/MemorySSA.h
-
template <typename Out, unsigned Size, typename R>SmallVector<Out, Size> to_vector_of (R && Range)Defined at line 1314 of file llvm/include/llvm/ADT/SmallVector.h
-
Error createStringError (error_code EC, const char * S)Defined at line 1314 of file llvm/include/llvm/Support/Error.h
-
iterator_range upward_defs (const MemoryAccessPair & Pair, DominatorTree & DT)Defined at line 1314 of file llvm/include/llvm/Analysis/MemorySSA.h
-
template <typename Out, typename R>int to_vector_of (R && Range)Defined at line 1318 of file llvm/include/llvm/ADT/SmallVector.h
-
template <typename Out, typename R>SmallVector<Out> to_vector_of (R && Range)Defined at line 1318 of file llvm/include/llvm/ADT/SmallVector.h
-
Error createStringError (error_code EC, const Twine & S)Defined at line 1318 of file llvm/include/llvm/Support/Error.h
-
Error createStringError (const Twine & S)Create a StringError with an inconvertible error code.
Defined at line 1323 of file llvm/include/llvm/Support/Error.h
-
unique_ptr createRuntimeDyldCOFF (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)Defined at line 1324 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
template <typename... Ts>Error createStringError (const char * Fmt, const Ts &... Vals)Defined at line 1328 of file llvm/include/llvm/Support/Error.h
-
template <typename... Ts>Error createStringError (errc EC, const char * Fmt, const Ts &... Vals)Defined at line 1333 of file llvm/include/llvm/Support/Error.h
-
unique_ptr createRuntimeDyldELF (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)Defined at line 1336 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
unique_ptr createRuntimeDyldMachO (ArchType Arch, RuntimeDyld::MemoryManager & MM, JITSymbolResolver & Resolver, bool ProcessAllSections, function NotifyStubEmitted)Defined at line 1347 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
template <class T>int def_chain (T MA, MemoryAccess * UpTo)Defined at line 1362 of file llvm/include/llvm/Analysis/MemorySSA.h
-
template <class T>iterator_range<def_chain_iterator<T>> def_chain (T MA, MemoryAccess * UpTo)Defined at line 1362 of file llvm/include/llvm/Analysis/MemorySSA.h
-
FunctionPass * createX86LowerAMXTypeLegacyPass ()Defined at line 1367 of file llvm/lib/Target/X86/X86LowerAMXType.cpp
-
template <class T>iterator_range<def_chain_iterator<T, true>> optimized_def_chain (T MA)Defined at line 1372 of file llvm/include/llvm/Analysis/MemorySSA.h
-
MDNode * mayHaveValueProfileOfKind (const Instruction & Inst, InstrProfValueKind ValueKind)Defined at line 1378 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <typename ContainerTy>auto make_first_range (ContainerTy && c)Given a container of pairs, return a range over the first elements.
Defined at line 1397 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename ContainerTy>auto make_second_range (ContainerTy && c)Given a container of pairs, return a range over the second elements.
Defined at line 1407 of file llvm/include/llvm/ADT/STLExtras.h
-
Error createFileError (const Twine & F, error_code EC)Concatenate a source file path and/or name with a std::error_code
to form an Error object.
Defined at line 1411 of file llvm/include/llvm/Support/Error.h
-
Error createFileError (const Twine & F, size_t Line, error_code EC)Concatenate a source file path and/or name with line number and
std::error_code to form an Error object.
Defined at line 1417 of file llvm/include/llvm/Support/Error.h
-
template <typename ContainerTy>auto reverse_conditionally (ContainerTy && C, bool ShouldReverse)Return a range that conditionally reverses
The collection is iterated
in reverse if
is true (otherwise, it is iterated forwards).
Defined at line 1421 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename Strategy = GenericScheduler>ScheduleDAGMILive * createSchedLive (MachineSchedContext * C)Create the standard converging machine scheduler. This will be used as the
default scheduler if the target does not set a default.
Adds default DAG mutations.
Defined at line 1422 of file llvm/include/llvm/CodeGen/MachineScheduler.h
-
Error createFileError (const Twine & F, error_code EC, const Twine & S)Create a StringError with the specified error code and prepend the file path
to it.
Defined at line 1423 of file llvm/include/llvm/Support/Error.h
-
template <typename... Ts>Error createFileError (const Twine & F, error_code EC, const char * Fmt, const Ts &... Vals)Create a StringError with the specified error code and prepend the file path
to it.
Defined at line 1432 of file llvm/include/llvm/Support/Error.h
-
auto successors (const MachineBasicBlock * BB)These accessors are handy for sharing templated code between IR and MIR.
Defined at line 1437 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
Error createFileError (const Twine & F, ErrorSuccess )Defined at line 1438 of file llvm/include/llvm/Support/Error.h
-
auto predecessors (const MachineBasicBlock * BB)Defined at line 1438 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
unsigned int succ_size (const MachineBasicBlock * BB)Defined at line 1441 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
unsigned int pred_size (const MachineBasicBlock * BB)Defined at line 1442 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
template <typename Strategy = PostGenericScheduler>ScheduleDAGMI * createSchedPostRA (MachineSchedContext * C)Create a generic scheduler with no vreg liveness or DAG mutation passes.
Defined at line 1442 of file llvm/include/llvm/CodeGen/MachineScheduler.h
-
auto succ_begin (const MachineBasicBlock * BB)Defined at line 1443 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
auto pred_begin (const MachineBasicBlock * BB)Defined at line 1444 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
void createPGONameMetadata (GlobalObject & GO, StringRef MetadataName, StringRef PGOName)Defined at line 1444 of file llvm/lib/ProfileData/InstrProf.cpp
-
auto succ_end (const MachineBasicBlock * BB)Defined at line 1445 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
auto pred_end (const MachineBasicBlock * BB)Defined at line 1446 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
template <typename IterT>IterT skipDebugInstructionsForward (IterT It, IterT End, bool SkipPseudoOp)Increment
until it points to a non-debug instruction or to
and return the resulting iterator. This function should only be used
MachineBasicBlock::{iterator, const_iterator, instr_iterator,
const_instr_iterator} and the respective reverse iterators.
Defined at line 1477 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
template <class IterT>IterT skipDebugInstructionsBackward (IterT It, IterT Begin, bool SkipPseudoOp)Decrement
until it points to a non-debug instruction or to
and return the resulting iterator. This function should only be used
MachineBasicBlock::{iterator, const_iterator, instr_iterator,
const_instr_iterator} and the respective reverse iterators.
Defined at line 1490 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
Error unwrap (LLVMErrorRef ErrRef)Conversion from LLVMErrorRef to Error for C error bindings.
Defined at line 1495 of file llvm/include/llvm/Support/Error.h
-
template <typename IterT>IterT next_nodbg (IterT It, IterT End, bool SkipPseudoOp)Increment
then continue incrementing it while it points to a debug
instruction. A replacement for std::next.
Defined at line 1501 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
template <typename IterT>IterT prev_nodbg (IterT It, IterT Begin, bool SkipPseudoOp)Decrement
then continue decrementing it while it points to a debug
instruction. A replacement for std::prev.
Defined at line 1508 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
bool operator== (PtrAuthData Lhs, PtrAuthData Rhs)Defined at line 1509 of file llvm/include/llvm/IR/DebugInfoMetadata.h
-
bool operator!= (PtrAuthData Lhs, PtrAuthData Rhs)Defined at line 1514 of file llvm/include/llvm/IR/DebugInfoMetadata.h
-
template <typename IterT>auto instructionsWithoutDebug (IterT It, IterT End, bool SkipPseudoOp)Construct a range iterator which begins at
and moves forwards until
is reached, skipping any debug instructions.
Defined at line 1515 of file llvm/include/llvm/CodeGen/MachineBasicBlock.h
-
template <typename... CallableTs>decltype(auto) makeVisitor (CallableTs &&... Callables)Returns an opaquely-typed Callable object whose operator() overload set is
the sum of the operator() overload sets of each CallableT in CallableTs.
The type of the returned object derives from each CallableT in CallableTs.
The returned object is constructed by invoking the appropriate copy or move
constructor of each CallableT, as selected by overload resolution on the
corresponding argument to makeVisitor.
Example:
Example of making a visitor with a lambda which captures a move-only type:
Code
auto visitor = makeVisitor([](auto) { return "unhandled type"; }, [](int i) { return "int"; }, [](std::string s) { return "str"; }); auto a = visitor(42); // `a` is now "int". auto b = visitor("foo"); // `b` is now "str". auto c = visitor(3.14f); // `c` is now "unhandled type".std::unique_ptr<FooHandler> FH = /* ... */; auto visitor = makeVisitor( [FH{std::move(FH)}](Foo F) { return FH->handle(F); }, [](int i) { return i; }, [](std::string s) { return atoi(s); });Defined at line 1517 of file llvm/include/llvm/ADT/STLExtras.h
-
template <class Iterator, class RNG>void shuffle (Iterator first, Iterator last, RNG && g)We have a copy here so that LLVM behaves the same when using different
standard libraries.
Defined at line 1528 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T>int array_pod_sort_comparator (const void * P1, const void * P2)Adapt std::less
<T
> for array_pod_sort.
Defined at line 1544 of file llvm/include/llvm/ADT/STLExtras.h
-
APFloat abs (APFloat X)Returns the absolute value of the argument.
Defined at line 1545 of file llvm/include/llvm/ADT/APFloat.h
-
APFloat neg (APFloat X)Returns the negated value of the argument.
Defined at line 1551 of file llvm/include/llvm/ADT/APFloat.h
-
template <typename T>int (*)(const void *, const void *) get_array_pod_sort_comparator (const T & )get_array_pod_sort_comparator - This is an internal helper function used to
get type deduction of T right.
Defined at line 1557 of file llvm/include/llvm/ADT/STLExtras.h
-
APFloat minnum (const APFloat & A, const APFloat & B)Implements IEEE-754 2008 minNum semantics. Returns the smaller of the
2 arguments if both are not NaN. If either argument is a qNaN, returns the
other argument. If either argument is sNaN, return a qNaN.
-0 is treated as ordered less than +0.
Defined at line 1560 of file llvm/include/llvm/ADT/APFloat.h
-
StringRef detectStubKind (const Session::MemoryRegionInfo & Stub)Defined at line 1569 of file llvm/tools/llvm-jitlink/llvm-jitlink.cpp
-
APFloat maxnum (const APFloat & A, const APFloat & B)Implements IEEE-754 2008 maxNum semantics. Returns the larger of the
2 arguments if both are not NaN. If either argument is a qNaN, returns the
other argument. If either argument is sNaN, return a qNaN.
+0 is treated as ordered greater than -0.
Defined at line 1579 of file llvm/include/llvm/ADT/APFloat.h
-
template <class IteratorTy>void array_pod_sort (IteratorTy Start, IteratorTy End)array_pod_sort - This sorts an array with the specified start and end
extent. This is just like std::sort, except that it calls qsort instead of
using an inlined template. qsort is slightly slower than std::sort, but
most sorts are not performance critical in LLVM and std::sort has to be
template instantiated for each type, leading to significant measured code
bloat. This function should generally be used instead of std::sort where
possible.
This function assumes that you have simple POD-like types that can be
compared with std::less and can be moved with memcpy. If this isn't true,
you should use std::sort.
NOTE: If qsort_r were portable, we could allow a custom comparator and
default to std::less.
Defined at line 1594 of file llvm/include/llvm/ADT/STLExtras.h
-
APFloat minimum (const APFloat & A, const APFloat & B)Implements IEEE 754-2019 minimum semantics. Returns the smaller of 2
arguments, returning a quiet NaN if an argument is a NaN and treating -0
as less than +0.
Defined at line 1597 of file llvm/include/llvm/ADT/APFloat.h
-
template <class IteratorTy>void array_pod_sort (IteratorTy Start, IteratorTy End, int (*)(const typename std::iterator_traits<IteratorTy>::value_type *, const typename std::iterator_traits<IteratorTy>::value_type *) Compare)Defined at line 1606 of file llvm/include/llvm/ADT/STLExtras.h
-
APFloat minimumnum (const APFloat & A, const APFloat & B)Implements IEEE 754-2019 minimumNumber semantics. Returns the smaller
of 2 arguments, not propagating NaNs and treating -0 as less than +0.
Defined at line 1610 of file llvm/include/llvm/ADT/APFloat.h
-
raw_ostream & operator<< (raw_ostream & OS, const RecordVal & RV)Defined at line 1624 of file llvm/include/llvm/TableGen/Record.h
-
APFloat maximum (const APFloat & A, const APFloat & B)Implements IEEE 754-2019 maximum semantics. Returns the larger of 2
arguments, returning a quiet NaN if an argument is a NaN and treating -0
as less than +0.
Defined at line 1624 of file llvm/include/llvm/ADT/APFloat.h
-
template <typename IteratorTy>void sort (IteratorTy Start, IteratorTy End)Provide wrappers to std::sort which shuffle the elements before sorting
to help uncover non-deterministic behavior (PR35135).
Defined at line 1634 of file llvm/include/llvm/ADT/STLExtras.h
-
APFloat maximumnum (const APFloat & A, const APFloat & B)Implements IEEE 754-2019 maximumNumber semantics. Returns the larger
of 2 arguments, not propagating NaNs and treating -0 as less than +0.
Defined at line 1637 of file llvm/include/llvm/ADT/APFloat.h
-
template <typename Container>void sort (Container && C)Defined at line 1647 of file llvm/include/llvm/ADT/STLExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const APFloat & V)Defined at line 1648 of file llvm/include/llvm/ADT/APFloat.h
-
template <typename IteratorTy, typename Compare>void sort (IteratorTy Start, IteratorTy End, Compare Comp)Defined at line 1652 of file llvm/include/llvm/ADT/STLExtras.h
-
uint32_t getWeightFromBranchProb (BranchProbability Prob)A helper function that converts a branch probability into weight.
Defined at line 1656 of file llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
-
template <typename Container, typename Compare>void sort (Container && C, Compare Comp)Defined at line 1660 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>auto size (R && Range, int * )Get the size of a range. This is a wrapper function around std::distance
which is only enabled when the operation is O(1).
Defined at line 1667 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>auto size (R && Range, std::enable_if_t<std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<decltype(Range.begin())>::iterator_category>::value, void> * )Get the size of a range. This is a wrapper function around std::distance
which is only enabled when the operation is O(1).
Defined at line 1667 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename E>auto accumulate (R && Range, E && Init)Wrapper for std::accumulate.
Defined at line 1700 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename E, typename BinaryOp>auto accumulate (R && Range, E && Init, BinaryOp && Op)Wrapper for std::accumulate with a binary operator.
Defined at line 1707 of file llvm/include/llvm/ADT/STLExtras.h
-
basic_string getUniqueInternalLinkagePostfix (const StringRef & FName)Prepend "__uniq" before the hash for tools like profilers to understand
that this symbol is of internal linkage type. The "__uniq" is the
pre-determined prefix that is used to tell tools that this symbol was
created with -funique-internal-linkage-symbols and the tools can strip or
keep the prefix as needed.
Defined at line 1710 of file llvm/include/llvm/ProfileData/SampleProf.h
-
template <typename R, typename E = detail::ValueOfRange<R>>auto sum_of (R && Range, E Init)Returns the sum of all values in `Range` with `Init` initial value.
The default initial value is 0.
Defined at line 1715 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename E = detail::ValueOfRange<R>>auto product_of (R && Range, E Init)Returns the product of all values in `Range` with `Init` initial value.
The default initial value is 1.
Defined at line 1722 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename UnaryFunction>UnaryFunction for_each (R && Range, UnaryFunction F)Provide wrappers to std::for_each which take ranges instead of having to
pass begin/end explicitly.
Defined at line 1730 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename UnaryPredicate>bool none_of (R && Range, UnaryPredicate P)Provide wrappers to std::none_of which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1751 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T>void fill (R && Range, T && Value)Provide wrappers to std::fill which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1757 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T>auto find (R && Range, const T & Val)Provide wrappers to std::find which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1763 of file llvm/include/llvm/ADT/STLExtras.h
-
bool isConvergenceControlIntrinsic (unsigned int IntrinsicID)Check if
corresponds to a convergence control intrinsic.
Defined at line 1763 of file llvm/include/llvm/IR/IntrinsicInst.h
-
template <typename R, typename UnaryPredicate>auto find_if (R && Range, UnaryPredicate P)Provide wrappers to std::find_if which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1770 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename UnaryPredicate>auto find_if_not (R && Range, UnaryPredicate P)Defined at line 1775 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename UnaryPredicate>auto remove_if (R && Range, UnaryPredicate P)Provide wrappers to std::remove_if which take ranges instead of having to
pass begin/end explicitly.
Defined at line 1782 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename OutputIt, typename UnaryPredicate>OutputIt copy_if (R && Range, OutputIt Out, UnaryPredicate P)Provide wrappers to std::copy_if which take ranges instead of having to
pass begin/end explicitly.
Defined at line 1789 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R1, typename R2>auto search (R1 && Range1, R2 && Range2)Provide wrappers to std::search which searches for the first occurrence of
Range2 within Range1.
Defined at line 1797 of file llvm/include/llvm/ADT/STLExtras.h
-
Value * emitSPrintf (Value * Dest, Value * Fmt, ArrayRef VariadicArgs, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the sprintf function.
Defined at line 1797 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename R1, typename R2, typename BinaryPredicate>auto search (R1 && Range1, R2 && Range2, BinaryPredicate P)Provide wrappers to std::search which searches for the first occurrence of
Range2 within Range1 using predicate `P`.
Defined at line 1807 of file llvm/include/llvm/ADT/STLExtras.h
-
Value * emitStrCat (Value * Dest, Value * Src, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strcat function.
Defined at line 1809 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename R>auto adjacent_find (R && Range)Provide wrappers to std::adjacent_find which finds the first pair of
adjacent elements that are equal.
Defined at line 1816 of file llvm/include/llvm/ADT/STLExtras.h
-
Value * emitStrLCpy (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strlcpy function.
Defined at line 1817 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename R, typename BinaryPredicate>auto adjacent_find (R && Range, BinaryPredicate P)Provide wrappers to std::adjacent_find which finds the first pair of
adjacent elements that are satisfy `P`.
Defined at line 1825 of file llvm/include/llvm/ADT/STLExtras.h
-
Value * emitStrLCat (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strlcat function.
Defined at line 1826 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Value * emitStrNCat (Value * Dest, Value * Src, Value * Size, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the strncat function.
Defined at line 1835 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
unique_ptr createXCOFFDumper (const object::XCOFFObjectFile & Obj, ScopedPrinter & Writer)Defined at line 1247 of file llvm/tools/llvm-readobj/XCOFFDumper.cpp
-
void initializeMemoryDependenceWrapperPassPass (PassRegistry & )Defined at line 1733 of file llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
-
Align tryEnforceAlignment (Value * V, Align PrefAlign, const DataLayout & DL)If the specified pointer points to an object that we control, try to modify
the object's alignment to PrefAlign. Returns a minimum known alignment of
the value after the operation, which may be lower than PrefAlign.
Increating value alignment isn't often possible though. If alignment is
important, a more reliable approach is to simply align all global variables
and allocation instructions to their preferred alignment from the beginning.
Defined at line 1517 of file llvm/lib/Transforms/Utils/Local.cpp
-
void initializeX86AsmPrinterPass (PassRegistry & )Defined at line 1110 of file llvm/lib/Target/X86/X86AsmPrinter.cpp
-
template <typename T, typename R, typename Predicate>T * find_singleton (R && Range, Predicate P, bool AllowRepeats)Return the single value in
that satisfies
of
*, AllowRepeats)->T * returning nullptr
when no values or multiple values were found.
When
is true, multiple values that compare equal
are allowed.
Defined at line 1835 of file llvm/include/llvm/ADT/STLExtras.h
-
bool shouldSkipAttribute (bool Update, AttributeSpec AttrSpec, bool SkipPC)Defined at line 1836 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
Value * emitVSNPrintf (Value * Dest, Value * Size, Value * Fmt, Value * VAList, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the vsnprintf function.
Defined at line 1844 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Value * emitVSPrintf (Value * Dest, Value * Fmt, Value * VAList, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the vsprintf function.
Defined at line 1855 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename T, typename R, typename Predicate>std::pair<T *, bool> find_singleton_nested (R && Range, Predicate P, bool AllowRepeats)Return a pair consisting of the single value in
that satisfies
of
*, AllowRepeats)->std::pair
<T
*, bool> returning
nullptr when no values or multiple values were found, and a bool indicating
whether multiple values were found to cause the nullptr.
When
is true, multiple values that compare equal are
allowed. The predicate
returns a pair
<T
*, bool> where T is the
singleton while the bool indicates whether multiples have already been
found. It is expected that first will be nullptr when second is true.
This allows using find_singleton_nested within the predicate
.
Defined at line 1860 of file llvm/include/llvm/ADT/STLExtras.h
-
NamedMDNode * unwrap (LLVMNamedMDNodeRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h
-
template <>T * unwrap (LLVMNamedMDNodeRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h
-
LLVMNamedMDNodeRef wrap (const NamedMDNode * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 1862 of file llvm/include/llvm/IR/Metadata.h
-
template <typename R, typename OutputIt>OutputIt copy (R && Range, OutputIt Out)Defined at line 1883 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename OutputIt, typename UnaryPredicate, typename T>OutputIt replace_copy_if (R && Range, OutputIt Out, UnaryPredicate P, const T & NewValue)Provide wrappers to std::replace_copy_if which take ranges instead of having
to pass begin/end explicitly.
Defined at line 1890 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename OutputIt, typename T>OutputIt replace_copy (R && Range, OutputIt Out, const T & OldValue, const T & NewValue)Provide wrappers to std::replace_copy which take ranges instead of having to
pass begin/end explicitly.
Defined at line 1899 of file llvm/include/llvm/ADT/STLExtras.h
-
Value * emitUnaryFloatFnCall (Value * Op, const TargetLibraryInfo * TLI, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs)Emit a call to the unary function named 'Name' (e.g. 'floor'). This
function is known to take a single of type matching 'Op' and returns one
value with the same type. If 'Op' is a long double, 'l' is added as the
suffix of name, if 'Op' is a float, we add a 'f' suffix.
Defined at line 1902 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename R, typename T>void replace (R && Range, const T & OldValue, const T & NewValue)Provide wrappers to std::replace which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1908 of file llvm/include/llvm/ADT/STLExtras.h
-
bool promoteLoopAccessesToScalars (const SmallSetVector<Value *, 8> & , SmallVectorImpl<BasicBlock *> & , SmallVectorImpl<BasicBlock::iterator> & , SmallVectorImpl<MemoryAccess *> & , PredIteratorCache & , LoopInfo * , DominatorTree * , AssumptionCache * AC, const TargetLibraryInfo * , TargetTransformInfo * , Loop * , MemorySSAUpdater & , ICFLoopSafetyInfo * , OptimizationRemarkEmitter * , bool AllowSpeculation, bool HasReadsOutsideSet)Try to promote memory values to scalars by sinking stores out of
the loop and moving loads to before the loop. We do this by looping over
the stores in the loop, looking for stores to Must pointers which are
loop invariant. It takes a set of must-alias values, Loop exit blocks
vector, loop exit blocks insertion point vector, PredIteratorCache,
LoopInfo, DominatorTree, Loop, AliasSet information for all instructions
of the loop and loop safety information as arguments.
Diagnostics is emitted via
It returns changed status.
is whether values should be hoisted even if they are not
guaranteed to execute in the loop, but are safe to speculatively execute.
Defined at line 1912 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
Value * emitUnaryFloatFnCall (Value * Op, const TargetLibraryInfo * TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase & B, const AttributeList & Attrs)Emit a call to the unary function DoubleFn, FloatFn or LongDoubleFn,
depending of the type of Op.
Defined at line 1914 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
template <typename R, typename OutputIt>OutputIt move (R && Range, OutputIt Out)Provide wrappers to std::move which take ranges instead of having to
pass begin/end explicitly.
Defined at line 1915 of file llvm/include/llvm/ADT/STLExtras.h
-
FunctionPass * createFastRegisterAllocator ()FastRegisterAllocation Pass - This pass register allocates as fast as
possible. It is best suited for debug code where live ranges are short.
Defined at line 1918 of file llvm/lib/CodeGen/RegAllocFast.cpp
-
template <typename R, typename E>bool is_contained (R && Range, const E & Element)Returns true if
is found in
Delegates the check to
either `.contains(Element)`, `.find(Element)`, or `std::find`, in this
order of preference. This is intended as the canonical way to check if an
element exists in a range in generic code or range type that does not
expose a `.contains(Element)` member.
Defined at line 1945 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T, typename E>bool is_contained (std::initializer_list<T> Set, const E & Element)Returns true iff
exists in
This overload takes
as
an initializer list and is `constexpr`-friendly.
Defined at line 1958 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename Compare>bool is_sorted (R && Range, Compare C)Wrapper function around std::is_sorted to check if elements in a range
are sorted with respect to a comparator
Defined at line 1968 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>bool is_sorted (R && Range)Wrapper function around std::is_sorted to check if elements in a range
are sorted in non-descending order.
Defined at line 1974 of file llvm/include/llvm/ADT/STLExtras.h
-
bool isIntOrFPConstant (SDValue V)Return true if
is either a integer or FP constant.
Defined at line 1976 of file llvm/include/llvm/CodeGen/SelectionDAGNodes.h
-
template <typename R1, typename R2>bool includes (R1 && Range1, R2 && Range2)Provide wrappers to std::includes which take ranges instead of having to
pass begin/end explicitly.
This function checks if the sorted range
is a subsequence of the
sorted range
The ranges must be sorted in non-descending order.
Defined at line 1982 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R1, typename R2, typename Compare>bool includes (R1 && Range1, R2 && Range2, Compare && C)This function checks if the sorted range
is a subsequence of the
sorted range
The ranges must be sorted with respect to a comparator
Defined at line 1993 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename E>auto count (R && Range, const E & Element)Wrapper function around std::count to count the number of times an element
occurs in the given range
Defined at line 2002 of file llvm/include/llvm/ADT/STLExtras.h
-
InstructionSelector * createX86InstructionSelector (const X86TargetMachine & TM, const X86Subtarget & , const X86RegisterBankInfo & )Defined at line 2007 of file llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
-
template <typename R, typename UnaryPredicate>auto count_if (R && Range, UnaryPredicate P)Wrapper function around std::count_if to count the number of times an
element satisfying a given predicate occurs in a range.
Defined at line 2009 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename OutputIt, typename UnaryFunction>OutputIt transform (R && Range, OutputIt d_first, UnaryFunction F)Wrapper function around std::transform to apply a function to a range and
store the result elsewhere.
Defined at line 2016 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename UnaryPredicate>auto partition (R && Range, UnaryPredicate P)Provide wrappers to std::partition which take ranges instead of having to
pass begin/end explicitly.
Defined at line 2023 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T>auto binary_search (R && Range, T && Value)Provide wrappers to std::binary_search which take ranges instead of having
to pass begin/end explicitly.
Defined at line 2029 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T, typename Compare>auto binary_search (R && Range, T && Value, Compare C)Defined at line 2035 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T>auto lower_bound (R && Range, T && Value)Provide wrappers to std::lower_bound which take ranges instead of having to
pass begin/end explicitly.
Defined at line 2042 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T, typename Compare>auto lower_bound (R && Range, T && Value, Compare C)Defined at line 2048 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T>auto upper_bound (R && Range, T && Value)Provide wrappers to std::upper_bound which take ranges instead of having to
pass begin/end explicitly.
Defined at line 2055 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename T, typename Compare>auto upper_bound (R && Range, T && Value, Compare C)Defined at line 2061 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>auto min_element (R && Range)Provide wrappers to std::min_element which take ranges instead of having to
pass begin/end explicitly.
Defined at line 2068 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename Compare>auto min_element (R && Range, Compare C)Defined at line 2072 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>auto max_element (R && Range)Provide wrappers to std::max_element which take ranges instead of having to
pass begin/end explicitly.
Defined at line 2078 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename Compare>auto max_element (R && Range, Compare C)Defined at line 2082 of file llvm/include/llvm/ADT/STLExtras.h
-
const IntrinsicData * getIntrinsicWithoutChain (unsigned int IntNo)Retrieve data for Intrinsic without chain.
Return nullptr if intrinsic is not defined in the table.
Defined at line 2084 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h
-
void verifyIntrinsicTables ()Defined at line 2091 of file llvm/lib/Target/X86/X86IntrinsicsInfo.h
-
template <typename R1, typename R2>auto mismatch (R1 && Range1, R2 && Range2)Provide wrappers to std::mismatch which take ranges instead of having to
pass begin/end explicitly.
This function returns a pair of iterators for the first mismatching elements
from `R1` and `R2`. As an example, if:
R1 = [0, 1, 4, 6], R2 = [0, 1, 5, 6]
this function will return a pair of iterators, first pointing to R1[2] and
second pointing to R2[2].
Defined at line 2095 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename IterTy>auto uninitialized_copy (R && Src, IterTy Dst)Defined at line 2101 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R>void stable_sort (R && Range)Defined at line 2106 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename R, typename Compare>void stable_sort (R && Range, Compare C)Defined at line 2111 of file llvm/include/llvm/ADT/STLExtras.h
-
bool operator== (uint64_t V1, const APInt & V2)Defined at line 2112 of file llvm/include/llvm/ADT/APInt.h
-
bool operator!= (uint64_t V1, const APInt & V2)Defined at line 2114 of file llvm/include/llvm/ADT/APInt.h
-
template <typename R, typename Predicate, typename Val = decltype(*adl_begin(std::declval<R>()))>auto partition_point (R && Range, Predicate P)Binary search for the first iterator in a range where a predicate is false.
Requires that C is always true below some limit, and always false above it.
Defined at line 2119 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator~ (APInt v)Unary bitwise complement operator.
Defined at line 2119 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Range, typename Predicate>auto unique (Range && R, Predicate P)Defined at line 2124 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator& (APInt a, const APInt & b)Defined at line 2124 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator& (const APInt & a, APInt && b)Defined at line 2129 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Range>auto unique (Range && R)Wrapper function around std::unique to allow calling unique on a
container without having to specify the begin/end iterators.
Defined at line 2130 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator& (APInt a, uint64_t RHS)Defined at line 2134 of file llvm/include/llvm/ADT/APInt.h
-
template <typename L, typename R>bool equal (L && LRange, R && RRange)Wrapper function around std::equal to detect if pair-wise elements between
two ranges are the same.
Defined at line 2136 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator& (uint64_t LHS, APInt b)Defined at line 2139 of file llvm/include/llvm/ADT/APInt.h
-
template <typename L, typename R, typename BinaryPredicate>bool equal (L && LRange, R && RRange, BinaryPredicate P)Defined at line 2142 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator| (APInt a, const APInt & b)Defined at line 2144 of file llvm/include/llvm/ADT/APInt.h
-
raw_ostream & operator<< (raw_ostream & OS, const MachineInstr & MI)===----------------------------------------------------------------------===//
Debugging Support
Defined at line 2148 of file llvm/include/llvm/CodeGen/MachineInstr.h
-
template <typename R>bool all_equal (R && Range)Returns true if all elements in Range are equal or when the Range is empty.
Defined at line 2148 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator| (const APInt & a, APInt && b)Defined at line 2149 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator| (APInt a, uint64_t RHS)Defined at line 2154 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator| (uint64_t LHS, APInt b)Defined at line 2159 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator^ (APInt a, const APInt & b)Defined at line 2164 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename UnaryPredicate>void erase_if (Container & C, UnaryPredicate P)Provide a container algorithm similar to C++ Library Fundamentals v2's
`erase_if` which is equivalent to:
C.erase(remove_if(C, pred), C.end());
This version works for any container with an erase method call accepting
two iterators.
Defined at line 2168 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator^ (const APInt & a, APInt && b)Defined at line 2169 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator^ (APInt a, uint64_t RHS)Defined at line 2174 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename ValueType>void erase (Container & C, ValueType V)Wrapper function to remove a value from a container:
C.erase(remove(C.begin(), C.end(), V), C.end());
Defined at line 2176 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator^ (uint64_t LHS, APInt b)Defined at line 2179 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename Range>void append_range (Container & C, Range && R)Wrapper function to append range `R` to container `C`.
C.insert(C.end(), R.begin(), R.end());
Defined at line 2184 of file llvm/include/llvm/ADT/STLExtras.h
-
raw_ostream & operator<< (raw_ostream & OS, const APInt & I)Defined at line 2184 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename... Args>void append_values (Container & C, Args &&... Values)Appends all `Values` to container `C`.
Defined at line 2190 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator+ (APInt a, const APInt & b)Defined at line 2194 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator+ (const APInt & a, APInt && b)Defined at line 2199 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator+ (APInt a, uint64_t RHS)Defined at line 2204 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator+ (uint64_t LHS, APInt b)Defined at line 2209 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename RandomAccessIterator>void replace (Container & Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, RandomAccessIterator ValIt, RandomAccessIterator ValEnd)Given a sequence container Cont, replace the range [ContIt, ContEnd) with
the range [ValIt, ValEnd) (which is not from the same container).
Defined at line 2209 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator- (APInt a, const APInt & b)Defined at line 2214 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator- (const APInt & a, APInt && b)Defined at line 2219 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator- (APInt a, uint64_t RHS)Defined at line 2225 of file llvm/include/llvm/ADT/APInt.h
-
APInt operator- (uint64_t LHS, APInt b)Defined at line 2230 of file llvm/include/llvm/ADT/APInt.h
-
template <typename Container, typename Range = std::initializer_list< typename Container::value_type>>void replace (Container & Cont, typename Container::iterator ContIt, typename Container::iterator ContEnd, Range && R)Given a sequence container Cont, replace the range [ContIt, ContEnd) with
the range R.
Defined at line 2231 of file llvm/include/llvm/ADT/STLExtras.h
-
APInt operator* (APInt a, uint64_t RHS)Defined at line 2236 of file llvm/include/llvm/ADT/APInt.h
-
void patchAddrBase (DIE & Die, DIEInteger Offset)Defined at line 2240 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
APInt operator* (uint64_t LHS, APInt b)Defined at line 2241 of file llvm/include/llvm/ADT/APInt.h
-
template <typename ForwardIterator, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>void interleave (ForwardIterator begin, ForwardIterator end, UnaryFunctor each_fn, NullaryFunctor between_fn)An STL-style algorithm similar to std::for_each that applies a second
functor between every pair of elements.
This provides the control flow logic to, for example, print a
comma-separated list:
Code
interleave(names.begin(), names.end(), [&](StringRef name) { os << name; }, [&] { os << ", "; });Defined at line 2251 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename Container, typename UnaryFunctor, typename NullaryFunctor, typename = std::enable_if_t< !std::is_constructible<StringRef, UnaryFunctor>::value && !std::is_constructible<StringRef, NullaryFunctor>::value>>void interleave (const Container & c, UnaryFunctor each_fn, NullaryFunctor between_fn)Defined at line 2267 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>void interleave (const Container & c, StreamT & os, UnaryFunctor each_fn, const StringRef & separator)Overload of interleave for the common case of string separator.
Defined at line 2275 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>void interleave (const Container & c, StreamT & os, const StringRef & separator)Defined at line 2281 of file llvm/include/llvm/ADT/STLExtras.h
-
void insertLineSequence (int & Seq, int & Rows)Insert the new line info sequence
into the current
set of already linked line info
Defined at line 2282 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
template <typename Container, typename UnaryFunctor, typename StreamT, typename T = detail::ValueOfRange<Container>>void interleaveComma (const Container & c, StreamT & os, UnaryFunctor each_fn)Defined at line 2289 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename Container, typename StreamT, typename T = detail::ValueOfRange<Container>>void interleaveComma (const Container & c, StreamT & os)Defined at line 2295 of file llvm/include/llvm/ADT/STLExtras.h
-
void patchStmtList (DIE & Die, DIEInteger Offset)Defined at line 2316 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
bool simplifyCFG (BasicBlock * BB, const TargetTransformInfo & TTI, DomTreeUpdater * DTU, const SimplifyCFGOptions & Options, ArrayRef LoopHeaders)Defined at line 8969 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp
-
Value * simplifyCastInst (unsigned int CastOpc, Value * Op, Type * Ty, const SimplifyQuery & Q)Given operands for a CastInst, fold the result or return null.
Defined at line 5539 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void initializeMachineBlockPlacementStatsLegacyPass (PassRegistry & )Defined at line 3901 of file llvm/lib/CodeGen/MachineBlockPlacement.cpp
-
Expected<std::unique_ptr<Module>> getOwningLazyBitcodeModule (std::unique_ptr<MemoryBuffer> && Buffer, LLVMContext & Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks)Like getLazyBitcodeModule, except that the module takes ownership of
the memory buffer if successful. If successful, this moves Buffer. On
error, this *does not* move Buffer. If IsImporting is true, this module is
being parsed for ThinLTO importing into another module.
Defined at line 8720 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
Value * simplifyBinaryIntrinsic (Intrinsic::ID IID, Type * ReturnType, Value * Op0, Value * Op1, const SimplifyQuery & Q, const CallBase * Call)Given operands for a BinaryIntrinsic, fold the result or return null.
Defined at line 6729 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Constant * getLosslessInvCast (Constant * C, Type * InvCastTo, unsigned int CastOp, const DataLayout & DL, PreservedCastFlags * Flags)Try to cast C to InvC losslessly, satisfying CastOp(InvC) equals C, or
CastOp(InvC) is a refined value of undefined C. Will try best to
preserve the flags.
Defined at line 4725 of file llvm/lib/Analysis/ConstantFolding.cpp
-
Constant * getLosslessUnsignedTrunc (Constant * C, Type * DestTy, const DataLayout & DL, PreservedCastFlags * Flags)Defined at line 4764 of file llvm/lib/Analysis/ConstantFolding.cpp
-
Expected<std::string> getBitcodeTargetTriple (MemoryBufferRef Buffer)Read the header of the specified bitcode buffer and extract just the
triple information. If successful, this returns a string. On error, this
returns "".
Defined at line 8747 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
Value * simplifyShuffleVectorInst (Value * Op0, Value * Op1, ArrayRef Mask, Type * RetTy, const SimplifyQuery & Q)Given operands for a ShuffleVectorInst, fold the result or return null.
Defined at line 5708 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool foldBranchToCommonDest (BranchInst * BI, llvm::DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU, const TargetTransformInfo * TTI, unsigned int BonusInstThreshold)If this basic block is ONLY a setcc and a branch, and if a predecessor
branches to us and one of our successors, fold the setcc into the
predecessor and use logical operations to pick the right destination.
Defined at line 4125 of file llvm/lib/Transforms/Utils/SimplifyCFG.cpp
-
bool parseMachineBasicBlockDefinitions (PerFunctionMIParsingState & PFS, StringRef Src, SMDiagnostic & Error)Parse the machine basic block definitions, and skip the machine
instructions.
This function runs the first parsing pass on the machine function's body.
It parses only the machine basic block definitions and creates the machine
basic blocks in the given machine function.
The machine instructions aren't parsed during the first pass because all
the machine basic blocks aren't defined yet - this makes it impossible to
resolve the machine basic block references.
Return true if an error occurred.
Defined at line 3659 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
Constant * getLosslessSignedTrunc (Constant * C, Type * DestTy, const DataLayout & DL, PreservedCastFlags * Flags)Defined at line 4770 of file llvm/lib/Analysis/ConstantFolding.cpp
-
Expected<bool> isBitcodeContainingObjCCategory (MemoryBufferRef Buffer)Return true if
contains a bitcode file with ObjC code (category
or class) in it.
Defined at line 8755 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
Value * simplifyCmpInst (CmpPredicate Predicate, Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for a CmpInst, fold the result or return null.
Defined at line 6276 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Expected<std::string> getBitcodeProducerString (MemoryBufferRef Buffer)Read the header of the specified bitcode buffer and extract just the
producer string information. If successful, this returns a string. On
error, this returns "".
Defined at line 8763 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
void checkForCycles (const SelectionDAG * DAG, bool force)Defined at line 14410 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
Value * simplifyUnOp (unsigned int Opcode, Value * Op, const SimplifyQuery & Q)Given operand for a UnaryOperator, fold the result or return null.
Defined at line 6179 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
int parseBitcodeFile (MemoryBufferRef Buffer, LLVMContext & Context, ParserCallbacks Callbacks)Read the specified bitcode file, returning the module.
Defined at line 8737 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
bool parseMachineInstructions (PerFunctionMIParsingState & PFS, StringRef Src, SMDiagnostic & Error)Parse the machine instructions.
This function runs the second parsing pass on the machine function's body.
It skips the machine basic block definitions and parses only the machine
instructions and basic block attributes like liveins and successors.
The second parsing pass assumes that the first parsing pass already ran
on the given source string.
Return true if an error occurred.
Defined at line 3665 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
Value * simplifyUnOp (unsigned int Opcode, Value * Op, FastMathFlags FMF, const SimplifyQuery & Q)Given operand for a UnaryOperator, fold the result or return null.
Try to use FastMathFlags when folding the result.
Defined at line 6183 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool parseMBBReference (PerFunctionMIParsingState & PFS, MachineBasicBlock *& MBB, StringRef Src, SMDiagnostic & Error)Defined at line 3670 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
Expected<BitcodeLTOInfo> getBitcodeLTOInfo (MemoryBufferRef Buffer)Returns LTO information for the specified bitcode file.
Defined at line 8789 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
FunctionPass * createX86SpeculativeLoadHardeningPass ()Defined at line 2265 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp
-
Value * simplifyBinOp (unsigned int Opcode, Value * LHS, Value * RHS, const SimplifyQuery & Q)Given operands for a BinaryOperator, fold the result or return null.
Defined at line 6258 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Intrinsic::ID getIntrinsicForCallSite (const CallBase & CB, const TargetLibraryInfo * TLI)Map a call instruction to an intrinsic ID. Libcalls which have equivalent
intrinsics are treated as-if they were intrinsics.
Defined at line 4587 of file llvm/lib/Analysis/ValueTracking.cpp
-
int getModuleSummaryIndex (MemoryBufferRef Buffer)Parse the specified bitcode buffer, returning the module summary index.
Defined at line 8780 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
bool parseRegisterReference (PerFunctionMIParsingState & PFS, Register & Reg, StringRef Src, SMDiagnostic & Error)Defined at line 3676 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
Value * simplifyBinOp (unsigned int Opcode, Value * LHS, Value * RHS, FastMathFlags FMF, const SimplifyQuery & Q)Given operands for a BinaryOperator, fold the result or return null.
Try to use FastMathFlags when folding the result.
Defined at line 6263 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void dumpCodeViewMergedTypes (ScopedPrinter & Writer, ArrayRef<ArrayRef<uint8_t>> IpiRecords, ArrayRef<ArrayRef<uint8_t>> TpiRecords)Defined at line 2513 of file llvm/tools/llvm-readobj/COFFDumper.cpp
-
bool isSignBitCheck (Predicate Pred, const APInt & RHS, bool & TrueIfSigned)Given an exploded icmp instruction, return true if the comparison only
checks the sign bit. If it only checks the sign bit, set TrueIfSigned if
the result of the comparison is true when the input value is signed.
Defined at line 4737 of file llvm/lib/Analysis/ValueTracking.cpp
-
Error readModuleSummaryIndex (MemoryBufferRef Buffer, ModuleSummaryIndex & CombinedIndex)Parse the specified bitcode buffer and merge the index into CombinedIndex.
Defined at line 8771 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
bool parseNamedRegisterReference (PerFunctionMIParsingState & PFS, Register & Reg, StringRef Src, SMDiagnostic & Error)Defined at line 3682 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
Value * simplifyCall (CallBase * Call, Value * Callee, ArrayRef Args, const SimplifyQuery & Q)Given a callsite, callee, and arguments, fold the result or return null.
Defined at line 7339 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool parseVirtualRegisterReference (PerFunctionMIParsingState & PFS, VRegInfo *& Info, StringRef Src, SMDiagnostic & Error)Defined at line 3688 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
void initializeMergeICmpsLegacyPassPass (PassRegistry & )Defined at line 956 of file llvm/lib/Transforms/Scalar/MergeICmps.cpp
-
FunctionPass * createFastRegisterAllocator (RegAllocFilterFunc F, bool ClearVirtRegs)Defined at line 1920 of file llvm/lib/CodeGen/RegAllocFast.cpp
-
void initializeModuleSummaryIndexWrapperPassPass (PassRegistry & )Defined at line 1186 of file llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
-
void initializeModuloScheduleTestPass (PassRegistry & )Defined at line 2804 of file llvm/lib/CodeGen/ModuloSchedule.cpp
-
bool parseStackObjectReference (PerFunctionMIParsingState & PFS, int & FI, StringRef Src, SMDiagnostic & Error)Defined at line 3694 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
int getModuleSummaryIndexForFile (StringRef Path, bool IgnoreEmptyThinLTOIndexFile)Parse the module summary index out of an IR file and return the module
summary index object if found, or an empty summary if not. If Path refers
to an empty file and IgnoreEmptyThinLTOIndexFile is true, then
this function will return nullptr.
Defined at line 8797 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
Value * emitBinaryFloatFnCall (Value * Op1, Value * Op2, const TargetLibraryInfo * TLI, StringRef Name, IRBuilderBase & B, const AttributeList & Attrs)Emit a call to the binary function named 'Name' (e.g. 'fmin'). This
function is known to take type matching 'Op1' and 'Op2' and return one
value with the same type. If 'Op1/Op2' are long double, 'l' is added as
the suffix of name, if 'Op1/Op2' are float, we add a 'f' suffix.
Defined at line 1952 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void printIRUnitNameForStackTrace (raw_ostream & OS, const Function & IR)Defined at line of file
-
void initializeX86CmovConverterPassPass (PassRegistry & )Defined at line 890 of file llvm/lib/Target/X86/X86CmovConversion.cpp
-
bool parseMDNode (PerFunctionMIParsingState & PFS, MDNode *& Node, StringRef Src, SMDiagnostic & Error)Defined at line 3700 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
void initializeX86DomainReassignmentPass (PassRegistry & )Defined at line 833 of file llvm/lib/Target/X86/X86DomainReassignment.cpp
-
Value * simplifyConstrainedFPCall (CallBase * Call, const SimplifyQuery & Q)Given a constrained FP intrinsic call, tries to compute its simplified
version. Returns a simplified result or null.
This function provides an additional contract: it guarantees that if
simplification succeeds that the intrinsic is side effect free. As a result,
successful simplification can be used to delete the intrinsic not just
replace its result.
Defined at line 7365 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
bool parseMachineMetadata (PerFunctionMIParsingState & PFS, StringRef Src, SMRange SourceRange, SMDiagnostic & Error)Defined at line 3705 of file llvm/lib/CodeGen/MIRParser/MIParser.cpp
-
void CloneAndPruneFunctionInto (Function * NewFunc, const Function * OldFunc, ValueToValueMapTy & VMap, bool ModuleLevelChanges, SmallVectorImpl<ReturnInst *> & Returns, const char * NameSuffix, ClonedCodeInfo * CodeInfo)This works exactly like CloneFunctionInto,
except that it does some simple constant prop and DCE on the fly. The
effect of this is to copy significantly less code in cases where (for
example) a function call with constant arguments is inlined, and those
constant arguments cause a significant amount of code in the callee to be
dead. Since this doesn't produce an exact copy of the input, it can't be
used for things like CloneFunction or CloneModule.
Defined at line 982 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
KnownFPClass computeKnownFPClass (const Value * V, const APInt & DemandedElts, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)is a compile time optimization hint for which floating
point classes should be queried. Queries not specified in
should be reliable if they are determined during the
query.
Defined at line 6183 of file llvm/lib/Analysis/ValueTracking.cpp
-
Align getOrEnforceKnownAlignment (Value * V, MaybeAlign PrefAlign, const DataLayout & DL, const Instruction * CxtI, AssumptionCache * AC, const DominatorTree * DT)Try to ensure that the alignment of
is at least
bytes. If
the owning object can be modified and has an alignment less than
it will be increased and
returned. If the alignment
cannot be increased, the known alignment of the value is returned.
It is not always possible to modify the alignment of the underlying object,
so if alignment is important, a more reliable approach is to simply align
all global variables and allocation instructions to their preferred
alignment from the beginning.
Defined at line 1566 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool hasWholeProgramVisibility (bool WholeProgramVisibilityEnabledInLTO)Enable whole program visibility if enabled by client (e.g. linker) or
internal option, and not force disabled.
Defined at line 829 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
Value * emitBinaryFloatFnCall (Value * Op1, Value * Op2, const TargetLibraryInfo * TLI, LibFunc DoubleFn, LibFunc FloatFn, LibFunc LongDoubleFn, IRBuilderBase & B, const AttributeList & Attrs)Emit a call to the binary function DoubleFn, FloatFn or LongDoubleFn,
depending of the type of Op1.
Defined at line 1967 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
InlineParams getInlineParams ()Generate the parameters to tune the inline cost analysis based only on the
commandline options.
Defined at line 3428 of file llvm/lib/Analysis/InlineCost.cpp
-
void updatePublicTypeTestCalls (Module & M, bool WholeProgramVisibilityEnabledInLTO)Defined at line 901 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
Value * simplifyFreezeInst (Value * Op, const SimplifyQuery & Q)Given an operand for a Freeze, see if we can fold the result.
If not, this returns null.
Defined at line 7384 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
KnownFPClass computeKnownFPClass (const Value * V, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)Defined at line 6194 of file llvm/lib/Analysis/ValueTracking.cpp
-
void updateVCallVisibilityInModule (Module & M, bool WholeProgramVisibilityEnabledInLTO, const int & DynamicExportSymbols, bool ValidateAllVtablesHaveTypeInfos, function_ref<bool (StringRef)> IsVisibleToRegularObj)If whole program visibility asserted, then upgrade all public vcall
visibility metadata on vtable definitions to linkage unit visibility in
Module IR (for regular or hybrid LTO).
Defined at line 875 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
void updateVCallVisibilityInModule (Module & M, bool WholeProgramVisibilityEnabledInLTO, const DenseSet<GlobalValue::GUID> & DynamicExportSymbols, bool ValidateAllVtablesHaveTypeInfos, function_ref<bool (StringRef)> IsVisibleToRegularObj)Defined at line of file
-
void initializeX86LoadValueInjectionLoadHardeningPassPass (PassRegistry & )Defined at line 800 of file llvm/lib/Target/X86/X86LoadValueInjectionLoadHardening.cpp
-
InlineParams getInlineParams (int Threshold)APIs to create InlineParams based on command line flags and/or other
parameters.
Defined at line 3375 of file llvm/lib/Analysis/InlineCost.cpp
-
FunctionPass * createDefaultPBQPRegisterAllocator ()PBQPRegisterAllocation Pass - This pass implements the Partitioned Boolean
Quadratic Prograaming (PBQP) based register allocator.
Defined at line 953 of file llvm/lib/CodeGen/RegAllocPBQP.cpp
-
Value * simplifyLoadInst (LoadInst * LI, Value * PtrOp, const SimplifyQuery & Q)Given a load instruction and its pointer operand, fold the result or return
null.
Defined at line 7388 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Value * emitPutChar (Value * Char, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to putchar(int) with Char as the argument. Char must have
the same precision as int, which need not be 32 bits.
Defined at line 1983 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void initializeX86LowerAMXTypeLegacyPassPass (PassRegistry & )Defined at line 1364 of file llvm/lib/Target/X86/X86LowerAMXType.cpp
-
void updateVCallVisibilityInIndex (ModuleSummaryIndex & Index, bool WholeProgramVisibilityEnabledInLTO, const DenseSet<GlobalValue::GUID> & DynamicExportSymbols, const DenseSet<GlobalValue::GUID> & VisibleToRegularObjSymbols)Defined at line of file
-
void updateVCallVisibilityInIndex (ModuleSummaryIndex & Index, bool WholeProgramVisibilityEnabledInLTO, const int & DynamicExportSymbols, const int & VisibleToRegularObjSymbols)If whole program visibility asserted, then upgrade all public vcall
visibility metadata on vtable definition summaries to linkage unit
visibility in Module summary index (for ThinLTO).
Defined at line 947 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
KnownFPClass computeKnownFPClass (const Value * V, const DataLayout & DL, FPClassTest InterestedClasses, const TargetLibraryInfo * TLI, AssumptionCache * AC, const Instruction * CxtI, const DominatorTree * DT, bool UseInstrInfo, unsigned int Depth)Defined at line 6203 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * emitPutS (Value * Str, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the puts function. This assumes that Str is some pointer.
Defined at line 2002 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Value * simplifyInstruction (Instruction * I, const SimplifyQuery & Q)See if we can compute a simplified version of this instruction. If not,
return null.
Defined at line 7568 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
unsigned int SplitAllCriticalEdges (Function & F, const CriticalEdgeSplittingOptions & Options)Loop over all of the edges in the CFG, breaking critical edges as they are
found. Returns the number of broken edges.
Defined at line 982 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void initializePostRAMachineSinkingLegacyPass (PassRegistry & )Defined at line 2114 of file llvm/lib/CodeGen/MachineSink.cpp
-
void getVisibleToRegularObjVtableGUIDs (ModuleSummaryIndex & Index, int & VisibleToRegularObjSymbols, function_ref<bool (StringRef)> IsVisibleToRegularObj)Based on typeID string, get all associated vtable GUIDS that are
visible to regular objects.
Defined at line 933 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
InlineParams getInlineParams (unsigned int OptLevel, unsigned int SizeOptLevel)Generate the parameters to tune the inline cost analysis based on command
line options. If -inline-threshold option is not explicitly passed,
the default threshold is computed from
and
An
value above 3 is considered an aggressive optimization mode.
of 1 corresponds to the -Os flag and 2 corresponds to
the -Oz flag.
Defined at line 3445 of file llvm/lib/Analysis/InlineCost.cpp
-
void initializePreISelIntrinsicLoweringLegacyPassPass (PassRegistry & )Defined at line 808 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
-
void initializeX86SpeculativeLoadHardeningPassPass (PassRegistry & )Defined at line 2262 of file llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp
-
Value * emitFPutC (Value * Char, Value * File, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the fputc function. This assumes that Char is an 'int', and
File is a pointer to FILE.
Defined at line 2020 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
Value * simplifyInstructionWithOperands (Instruction * I, ArrayRef NewOps, const SimplifyQuery & Q)Like
but the operands of
are replaced with
Returns a simplified value, or null if none was found.
Defined at line 7560 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
CallInst * createCallMatchingInvoke (InvokeInst * II)Create a call that matches the invoke
in terms of arguments,
attributes, debug information, etc. The call is not placed in a block and it
will not have a name. The invoke instruction is not removed, nor are the
uses replaced by the new call.
Defined at line 2553 of file llvm/lib/Transforms/Utils/Local.cpp
-
KnownFPClass computeKnownFPClass (const Value * V, const APInt & DemandedElts, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)Wrapper to account for known fast math flags at the use instruction.
Defined at line 6212 of file llvm/lib/Analysis/ValueTracking.cpp
-
int getCallsiteCost (const TargetTransformInfo & TTI, const CallBase & Call, const DataLayout & DL)Return the cost associated with a callsite, including parameter passing
and the call/return instruction.
Defined at line 3098 of file llvm/lib/Analysis/InlineCost.cpp
-
CallInst * changeToCall (InvokeInst * II, DomTreeUpdater * DTU)This function converts the specified invoke into a normal call.
Defined at line 2579 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * emitFPutS (Value * Str, Value * File, IRBuilderBase & B, const TargetLibraryInfo * TLI)Emit a call to the fputs function. Str is required to be a pointer and
File is a pointer to FILE.
Defined at line 2040 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
KnownFPClass computeKnownFPClass (const Value * V, FastMathFlags FMF, FPClassTest InterestedClasses, const SimplifyQuery & SQ, unsigned int Depth)Defined at line 6231 of file llvm/lib/Analysis/ValueTracking.cpp
-
RegAllocEvictionAdvisorAnalysisLegacy * createReleaseModeAdvisorAnalysisLegacy ()Defined at line 1037 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
-
void initializeReassociateLegacyPassPass (PassRegistry & )Defined at line 2660 of file llvm/lib/Transforms/Scalar/Reassociate.cpp
-
void runWholeProgramDevirtOnIndex (ModuleSummaryIndex & Summary, std::set<GlobalValue::GUID> & ExportedGUIDs, std::map<ValueInfo, std::vector<VTableSlotSummary>> & LocalWPDTargetsMap)Perform index-based whole program devirtualization on the
index. Any devirtualized targets used by a type test in another module
are added to the
set. For any local devirtualized targets
only used within the defining module, the information necessary for
locating the corresponding WPD resolution is recorded for the ValueInfo
in case it is exported by cross module importing (in which case the
devirtualized target name will need adjustment).
Defined at line of file
-
void runWholeProgramDevirtOnIndex (ModuleSummaryIndex & Summary, int & ExportedGUIDs, int & LocalWPDTargetsMap)Perform index-based whole program devirtualization on the
index. Any devirtualized targets used by a type test in another module
are added to the
set. For any local devirtualized targets
only used within the defining module, the information necessary for
locating the corresponding WPD resolution is recorded for the ValueInfo
in case it is exported by cross module importing (in which case the
devirtualized target name will need adjustment).
Defined at line 974 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
Value * emitFWrite (Value * Ptr, Value * Size, Value * File, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the fwrite function. This assumes that Ptr is a pointer,
Size is an 'size_t', and File is a pointer to FILE.
Defined at line 2060 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
RegAllocEvictionAdvisorProvider * createReleaseModeAdvisorProvider (LLVMContext & Ctx)Defined at line 1024 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
-
void InsertDebugValueAtStoreLoc (DbgVariableRecord * DVR, StoreInst * SI, DIBuilder & Builder)Creates and inserts a dbg_value record intrinsic before a store
that has an associated llvm.dbg.value intrinsic.
Defined at line 1708 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool cannotBeNegativeZero (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return true if we can prove that the specified FP value is never equal to
-0.0. Users should use caution when considering PreserveSign
denormal-fp-math.
Defined at line 6242 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * simplifyWithOpReplaced (Value * V, Value * Op, Value * RepOp, const SimplifyQuery & Q, bool AllowRefinement, SmallVectorImpl<Instruction *> * DropFlags)See if V simplifies when its operand Op is replaced with RepOp. If not,
return null.
AllowRefinement specifies whether the simplification can be a refinement
(e.g. 0 instead of poison), or whether it needs to be strictly identical.
Op and RepOp can be assumed to not be poison when determining refinement.
If DropFlags is passed, then the replacement result is only valid if
poison-generating flags/metadata on those instructions are dropped. This
is only useful in conjunction with AllowRefinement=false.
Defined at line 4532 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
RegAllocEvictionAdvisorProvider * createDevelopmentModeAdvisorProvider (LLVMContext & Ctx)Defined at line 1029 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
-
Value * emitMalloc (Value * Num, IRBuilderBase & B, const DataLayout & DL, const TargetLibraryInfo * TLI)Emit a call to the malloc function.
Defined at line 2084 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void updateIndexWPDForExports (ModuleSummaryIndex & Summary, function_ref<bool (StringRef, ValueInfo)> isExported, int & LocalWPDTargetsMap)Call after cross-module importing to update the recorded single impl
devirt target names for any locals that were exported.
Defined at line 980 of file llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
-
void updateIndexWPDForExports (ModuleSummaryIndex & Summary, function_ref<bool (StringRef, ValueInfo)> isExported, std::map<ValueInfo, std::vector<VTableSlotSummary>> & LocalWPDTargetsMap)Call after cross-module importing to update the recorded single impl
devirt target names for any locals that were exported.
Defined at line of file
-
void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, StoreInst * SI, DIBuilder & Builder)Inserts a dbg.value record before a store to an alloca'd value
that has an associated dbg.declare record.
Defined at line 1662 of file llvm/lib/Transforms/Utils/Local.cpp
-
InlineCost getInlineCost (CallBase & Call, const InlineParams & Params, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE, function_ref<EphemeralValuesCache &(Function &)> GetEphValuesCache)Get an InlineCost object representing the cost of inlining this
callsite.
Note that a default threshold is passed into this function. This threshold
could be modified based on callsite's properties and only costs below this
new threshold are computed with any accuracy. The new threshold can be
used to bound the computation necessary to determine whether the cost is
sufficiently low to warrant inlining.
Also note that calling this function *dynamically* computes the cost of
inlining the callsite. It is an expensive, heavyweight call.
Defined at line 3134 of file llvm/lib/Analysis/InlineCost.cpp
-
Value * emitCalloc (Value * Num, Value * Size, IRBuilderBase & B, const TargetLibraryInfo & TLI, unsigned int AddrSpace)Emit a call to the calloc function.
Defined at line 2104 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, LoadInst * LI, DIBuilder & Builder)Inserts a dbg.value record before a load of an alloca'd value
that has an associated dbg.declare record.
Defined at line 1722 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * emitHotColdNew (Value * Num, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Emit a call to the hot/cold operator new function.
Defined at line 2174 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool cannotBeOrderedLessThanZero (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return true if we can prove that the specified FP value is either NaN or
never less than -0.0.
NaN --> true
+0 --> true
-0 --> true
x > +0 --> true
x
<
-0 --> false
Defined at line 6248 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * emitHotColdNewNoThrow (Value * Num, Value * NoThrow, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Defined at line 2194 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool replaceAndRecursivelySimplify (Instruction * I, Value * SimpleV, const TargetLibraryInfo * TLI, const DominatorTree * DT, AssumptionCache * AC, SmallSetVector<Instruction *, 8> * UnsimplifiedUsers)Replace all uses of 'I' with 'SimpleV' and simplify the uses recursively.
This first performs a normal RAUW of I with SimpleV. It then recursively
attempts to simplify those users updated by the operation. The 'I'
instruction must not be equal to the simplified value 'SimpleV'.
If UnsimplifiedUsers is provided, instructions that could not be simplified
are added to it.
The function returns true if any simplifications were performed.
Defined at line 7644 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void ConvertDebugDeclareToDebugValue (DbgVariableRecord * DVR, PHINode * LI, DIBuilder & Builder)Inserts a dbg.value record after a phi that has an associated
llvm.dbg.declare record.
Defined at line 1761 of file llvm/lib/Transforms/Utils/Local.cpp
-
void jitLinkForORC (object::OwningBinary<object::ObjectFile> O, RuntimeDyld::MemoryManager & MemMgr, JITSymbolResolver & Resolver, bool ProcessAllSections, unique_function<Error (const object::ObjectFile &, LoadedObjectInfo &, std::map<StringRef, JITEvaluatedSymbol>)> OnLoaded, unique_function<void (object::OwningBinary<object::ObjectFile>, std::unique_ptr<LoadedObjectInfo>, Error)> OnEmitted)Asynchronous JIT link for ORC.
Warning: This API is experimental and probably should not be used by anyone
but ORC's RTDyldObjectLinkingLayer2. Internally it constructs a RuntimeDyld
instance and uses continuation passing to perform the fix-up and finalize
steps asynchronously.
Defined at line 1458 of file llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
-
Value * emitHotColdNewAligned (Value * Num, Value * Align, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Defined at line 2214 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool isKnownNeverInfinity (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return true if the floating-point scalar value is not an infinity or if
the floating-point vector value has no infinities. Return false if a value
could ever be infinity.
Defined at line 6255 of file llvm/lib/Analysis/ValueTracking.cpp
-
InlineCost getInlineCost (CallBase & Call, Function * Callee, const InlineParams & Params, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE, function_ref<EphemeralValuesCache &(Function &)> GetEphValuesCache)Get an InlineCost with the callee explicitly specified.
This allows you to calculate the cost of inlining a function via a
pointer. This behaves exactly as the version with no explicit callee
parameter in all other respects.
Defined at line 3261 of file llvm/lib/Analysis/InlineCost.cpp
-
bool LowerDbgDeclare (Function & F)LowerDbgDeclare - Lowers llvm.dbg.declare intrinsics into appropriate set
of llvm.dbg.value intrinsics.
Defined at line 1795 of file llvm/lib/Transforms/Utils/Local.cpp
-
void getSelectionDAGFallbackAnalysisUsage (AnalysisUsage & AU)Modify analysis usage so it preserves passes required for the SelectionDAG
fallback.
Defined at line 1191 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeSROALegacyPassPass (PassRegistry & )Defined at line 6243 of file llvm/lib/Transforms/Scalar/SROA.cpp
-
Value * emitHotColdNewAlignedNoThrow (Value * Num, Value * Align, Value * NoThrow, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Defined at line 2234 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
SimplifyQuery getBestSimplifyQuery (Pass & , Function & )These helper functions return a SimplifyQuery structure that contains as
many of the optional analysis we use as are currently valid. This is the
strongly preferred way of constructing SimplifyQuery in passes.
Defined at line 7655 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void initializeSafeStackLegacyPassPass (PassRegistry & )Defined at line 987 of file llvm/lib/CodeGen/SafeStack.cpp
-
bool isKnownNeverInfOrNaN (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return true if the floating-point value can never contain a NaN or infinity.
Defined at line 6262 of file llvm/lib/Analysis/ValueTracking.cpp
-
void insertDebugValuesForPHIs (BasicBlock * BB, SmallVectorImpl<PHINode *> & InsertedPHIs)Propagate dbg.value intrinsics through the newly inserted PHIs.
Defined at line 1879 of file llvm/lib/Transforms/Utils/Local.cpp
-
Error collectVTableStrings (ArrayRef<GlobalVariable *> VTables, std::string & Result, bool doCompression)Defined at line 769 of file llvm/lib/ProfileData/InstrProf.cpp
-
template <class T, class... TArgs>SimplifyQuery getBestSimplifyQuery (AnalysisManager<T, TArgs...> & , Function & )Defined at line 7671 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
void initializeScalarEvolutionWrapperPassPass (PassRegistry & )Defined at line 14817 of file llvm/lib/Analysis/ScalarEvolution.cpp
-
SimplifyQuery getBestSimplifyQuery (LoopStandardAnalysisResults & , const DataLayout & )Defined at line 7665 of file llvm/lib/Analysis/InstructionSimplify.cpp
-
Value * emitHotColdSizeReturningNew (Value * Num, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Defined at line 2124 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
void RemapSourceAtom (Instruction * I, ValueToValueMapTy & VM)Remap source location atom. Called by RemapInstruction. This updates the
instruction's atom group number if it has been mapped (e.g. with
llvm::mapAtomInstance), which is necessary to distinguish source code
atoms on duplicated code paths.
Defined at line 1314 of file llvm/lib/Transforms/Utils/ValueMapper.cpp
-
bool isIRPGOFlagSet (const Module * M)Check if INSTR_PROF_RAW_VERSION_VAR is defined.
Defined at line 1494 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool isKnownNeverNaN (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return true if the floating-point scalar value is not a NaN or if the
floating-point vector value has no NaN elements. Return false if a value
could ever be NaN.
Defined at line 6271 of file llvm/lib/Analysis/ValueTracking.cpp
-
void updatePhiNodes (BasicBlock * DestBB, BasicBlock * OldPred, BasicBlock * NewPred, PHINode * Until)Replaces all uses of OldPred with the NewPred block in all PHINodes in a
block.
Defined at line 779 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
InlineResult CanInlineCallSite (const CallBase & CB, InlineFunctionInfo & IFI)Check if it is legal to perform inlining of the function called by
into the caller at this particular use, and sets fields in
This does not consider whether it is possible for the function callee itself
to be inlined; for that see isInlineViable.
Defined at line 2457 of file llvm/lib/Transforms/Utils/InlineFunction.cpp
-
Value * emitHotColdSizeReturningNewAligned (Value * Num, Value * Align, IRBuilderBase & B, const TargetLibraryInfo * TLI, LibFunc NewFunc, uint8_t HotCold)Defined at line 2148 of file llvm/lib/Transforms/Utils/BuildLibCalls.cpp
-
bool replaceDbgDeclare (Value * Address, Value * NewAddress, DIBuilder & Builder, uint8_t DIExprFlags, int Offset)Replaces dbg.declare record when the address it
describes is replaced with a new value. If Deref is true, an
additional DW_OP_deref is prepended to the expression. If Offset
is non-zero, a constant displacement is added to the expression
(between the optional Deref operations). Offset can be negative.
Defined at line 1942 of file llvm/lib/Transforms/Utils/Local.cpp
-
int ConstantFoldVectorBinop (unsigned int Opcode, Register Op1, Register Op2, const MachineRegisterInfo & MRI)Tries to constant fold a vector binop with sources
and
Returns an empty vector on failure.
Defined at line 799 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool canRenameComdatFunc (const Function & F, bool CheckAddressTaken)Check if we can safely rename this Comdat function.
Defined at line 1516 of file llvm/lib/ProfileData/InstrProf.cpp
-
BasicBlock * ehAwareSplitEdge (BasicBlock * BB, BasicBlock * Succ, LandingPadInst * OriginalPad, PHINode * LandingPadReplacement, const CriticalEdgeSplittingOptions & Options, const Twine & BBName)Split the edge connect the specficed blocks in the case that
is an
Exception Handling Block
Defined at line 801 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
std::optional<InlineResult> getAttributeBasedInliningDecision (CallBase & Call, Function * Callee, TargetTransformInfo & CalleeTTI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI)Returns InlineResult::success() if the call site should be always inlined
because of user directives, and the inlining is viable. Returns
InlineResult::failure() if the inlining may never happen because of user
directives or incompatibilities detectable without needing callee traversal.
Otherwise returns std::nullopt, meaning that inlining should be decided
based on other criteria (e.g. cost modeling).
Defined at line 3186 of file llvm/lib/Analysis/InlineCost.cpp
-
optional computeKnownFPSignBit (const Value * V, const SimplifyQuery & SQ, unsigned int Depth)Return false if we can prove that the specified FP value's sign bit is 0.
Return true if we can prove that the specified FP value's sign bit is 1.
Otherwise return std::nullopt.
Defined at line 6280 of file llvm/lib/Analysis/ValueTracking.cpp
-
APInt readWideAPInt (ArrayRef Vals, unsigned int TypeBits)Defined at line 3228 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
std::optional<APInt> ConstantFoldCastOp (unsigned int Opcode, LLT DstTy, Register Op0, const MachineRegisterInfo & MRI)Defined at line 972 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
const std::error_category & BitcodeErrorCategory ()Defined at line 8349 of file llvm/lib/Bitcode/Reader/BitcodeReader.cpp
-
void getHorizDemandedEltsForFirstOperand (unsigned int VectorBitWidth, const APInt & DemandedElts, APInt & DemandedLHS, APInt & DemandedRHS)Compute the demanded elements mask of horizontal binary operations. A
horizontal operation combines two adjacent elements in a vector operand.
This function returns a mask for the elements that correspond to the first
operand of this horizontal combination. For example, for two vectors
[X1, X2, X3, X4] and [Y1, Y2, Y3, Y4], the resulting mask can include the
elements X1, X3, Y1, and Y3. To get the other operands, simply shift the
result of this function to the left by 1.
Parameters
VectorBitWidth the total bit width of the vectorDemandedElts the demanded elements mask for the operationDemandedLHS the demanded elements mask for the left operandDemandedRHS the demanded elements mask for the right operandDefined at line 780 of file llvm/lib/Analysis/VectorUtils.cpp
-
bool canIgnoreSignBitOfZero (const Use & U)Return true if the sign bit of the FP value can be ignored by the user when
the value is zero.
Defined at line 6287 of file llvm/lib/Analysis/ValueTracking.cpp
-
void replaceDbgValueForAlloca (AllocaInst * AI, Value * NewAllocaAddress, DIBuilder & Builder, int Offset)Replaces multiple dbg.value records when the alloca it describes
is replaced with a new value. If Offset is non-zero, a constant displacement
is added to the expression (after the mandatory Deref). Offset can be
negative. New dbg.value records are inserted at the locations of
the instructions they replace.
Defined at line 1982 of file llvm/lib/Transforms/Utils/Local.cpp
-
std::optional<APInt> ConstantFoldExtOp (unsigned int Opcode, Register Op1, uint64_t Imm, const MachineRegisterInfo & MRI)Defined at line 955 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void InlineFunctionImpl (CallBase & CB, InlineFunctionInfo & IFI, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)This function inlines the called function into the basic block of the
caller. This returns false if it is not possible to inline this call.
The program is still in a well defined state if this occurs though.
Note that this only does one level of inlining. For example, if the
instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now
exists in the instruction stream. Similarly this will inline a recursive
function by one level.
Defined at line 2596 of file llvm/lib/Transforms/Utils/InlineFunction.cpp
-
bool canIgnoreSignBitOfNaN (const Use & U)Return true if the sign bit of the FP value can be ignored by the user when
the value is NaN.
Defined at line 6326 of file llvm/lib/Analysis/ValueTracking.cpp
-
void annotateValueSite (Module & M, Instruction & Inst, const InstrProfRecord & InstrProfR, InstrProfValueKind ValueKind, uint32_t SiteIndx, uint32_t MaxMDCount)Get the value profile data for value site
from
and annotate the instruction
with the value profile meta data.
Annotate up to
(default 3) number of records per value site.
Defined at line 1334 of file llvm/lib/ProfileData/InstrProf.cpp
-
void initializeStackSafetyGlobalInfoWrapperPassPass (PassRegistry & )Defined at line 1219 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp
-
std::optional<APFloat> ConstantFoldIntToFloat (unsigned int Opcode, LLT DstTy, Register Src, const MachineRegisterInfo & MRI)Defined at line 995 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeStackSafetyInfoWrapperPassPass (PassRegistry & )Defined at line 1211 of file llvm/lib/Analysis/StackSafetyAnalysis.cpp
-
void salvageDebugInfo (Instruction & I)Assuming the instruction
is going to be deleted, attempt to salvage
debug users of
by writing the effect of
in a DIExpression. If it
cannot be salvaged changes its debug uses to undef.
Defined at line 1996 of file llvm/lib/Transforms/Utils/Local.cpp
-
std::optional<int> getInliningCostEstimate (CallBase & Call, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE)Get the cost estimate ignoring thresholds. This is similar to getInlineCost
when passed InlineParams::ComputeFullInlineCost, or a non-null ORE. It
uses default InlineParams otherwise.
Contrary to getInlineCost, which makes a threshold-based final evaluation of
should/shouldn't inline, captured in InlineResult, getInliningCostEstimate
returns:
- std::nullopt, if the inlining cannot happen (is illegal)
- an integer, representing the cost.
Defined at line 3146 of file llvm/lib/Analysis/InlineCost.cpp
-
FunctionPass * createIfConverter (std::function<bool (const MachineFunction &)> Ftor)Defined at line 2371 of file llvm/lib/CodeGen/IfConversion.cpp
-
void salvageDebugInfoForDbgValues (Instruction & I, ArrayRef<DbgVariableRecord *> DPInsns)Implementation of salvageDebugInfo, applying only to instructions in
rather than all debug users from findDbgUsers(
Mark undef if salvaging cannot be completed.
Defined at line 2037 of file llvm/lib/Transforms/Utils/Local.cpp
-
BasicBlock * SplitBlock (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Split the specified block at the specified instruction.
If
is true, splitBlockBefore handles the block
splitting. Otherwise, execution proceeds as described below.
Everything before
stays in
and everything starting with
moves to a new block. The two blocks are joined by an unconditional
branch. The new block with name
is returned.
FIXME: deprecated, switch to the DomTreeUpdater-based one.
Defined at line 1052 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Value * isBytewiseValue (Value * V, const DataLayout & DL)If the specified value can be set by repeating the same byte in memory,
return the i8 value that it is represented with. This is true for all i8
values obviously, but is also true for i32 0, i32 -1, i16 0xF0F0, double
0.0 etc. If the value can't be handled with a repeated byte store (e.g.
i16 0x1234), return null. If the value is entirely undef and padding,
return undef.
Defined at line 6395 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeTailCallElimPass (PassRegistry & )Defined at line 977 of file llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
-
int ConstantFoldCountZeros (Register Src, const MachineRegisterInfo & MRI, std::function<unsigned int (APInt)> CB)Tries to constant fold a counting-zero operation (G_CTLZ or G_CTTZ) on
If
is a vector then it tries to do an element-wise constant
fold.
Defined at line 1008 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void annotateValueSite (Module & M, Instruction & Inst, ArrayRef<InstrProfValueData> VDs, uint64_t Sum, InstrProfValueKind ValueKind, uint32_t MaxMDCount)Same as the above interface but using an ArrayRef, as well as
This function will not annotate !prof metadata on the instruction if the
referenced array is empty.
Defined at line 1347 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool isAssignmentTrackingEnabled (const Module & M)Return true if assignment tracking is enabled for module
Defined at line 2336 of file llvm/lib/IR/DebugInfo.cpp
-
void initializeTargetLibraryInfoWrapperPassPass (PassRegistry & )Register the basic pass.
Defined at line 1488 of file llvm/lib/Analysis/TargetLibraryInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, BBState & BBState)Defined at line 430 of file llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
-
void initializeTargetPassConfigPass (PassRegistry & )===---------------------------------------------------------------------===//
TargetPassConfig
===---------------------------------------------------------------------===//
Defined at line 384 of file llvm/lib/CodeGen/TargetPassConfig.cpp
-
void initializeTargetTransformInfoWrapperPassPass (PassRegistry & )Register the basic pass.
Defined at line 1523 of file llvm/lib/Analysis/TargetTransformInfo.cpp
-
int ConstantFoldICmp (unsigned int Pred, Register Op1, Register Op2, unsigned int DstScalarSizeInBits, unsigned int ExtOp, const MachineRegisterInfo & MRI)Defined at line 1040 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
std::optional<InlineCostFeatures> getInliningCostFeatures (CallBase & Call, TargetTransformInfo & CalleeTTI, function_ref<AssumptionCache &(Function &)> GetAssumptionCache, function_ref<BlockFrequencyInfo &(Function &)> GetBFI, function_ref<const TargetLibraryInfo &(Function &)> GetTLI, ProfileSummaryInfo * PSI, OptimizationRemarkEmitter * ORE)Get the expanded cost features. The features are returned unconditionally,
even if inlining is impossible.
Defined at line 3172 of file llvm/lib/Analysis/InlineCost.cpp
-
void initializeTwoAddressInstructionLegacyPassPass (PassRegistry & )Defined at line 263 of file llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
-
void initializeTypeBasedAAWrapperPassPass (PassRegistry & )Defined at line 743 of file llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
-
void gcovOneInput (const GCOV::Options & options, StringRef filename, StringRef gcno, StringRef gcda, GCOVFile & file)Defined at line 999 of file llvm/lib/ProfileData/GCOV.cpp
-
void initializeTypePromotionLegacyPass (PassRegistry & )Defined at line 1028 of file llvm/lib/CodeGen/TypePromotion.cpp
-
void initializeInitUndefLegacyPass (PassRegistry & )Defined at line 104 of file llvm/lib/CodeGen/InitUndef.cpp
-
Value * FindInsertedValue (Value * V, ArrayRef<unsigned int> idx_range, int InsertBefore)Given an aggregate and an sequence of indices, see if the scalar value
indexed is already around as a register, for example if it were inserted
directly into the aggregate.
If InsertBefore is not empty, this function will duplicate (modified)
insertvalues when a part of a nested struct is extracted.
Defined at line of file
-
Value * FindInsertedValue (Value * V, ArrayRef idx_range, optional InsertBefore)Given an aggregate and a sequence of indices, see if the scalar value
indexed is already around as a register, for example if it was inserted
directly into the aggregate.
If InsertBefore is not null, this function will duplicate (modified)
insertvalues when a part of a nested struct is extracted.
Defined at line 6577 of file llvm/lib/Analysis/ValueTracking.cpp
-
void initializeUniformityInfoWrapperPassPass (PassRegistry & )Defined at line 160 of file llvm/lib/Analysis/UniformityAnalysis.cpp
-
bool convertUTF32ToUTF8String (ArrayRef<UTF32> Src, std::string & Out)Converts a UTF32 string into a UTF8 std::string.
Parameters
Src [in] A buffer of UTF-32 encoded text.Out [out] Converted UTF-8 is stored here on success.Defined at line 192 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
SmallVector<InstrProfValueData, 4> getValueProfDataFromInst (const Instruction & Inst, InstrProfValueKind ValueKind, uint32_t MaxNumValueData, uint64_t & TotalC, bool GetNoICPValue)TODO: Unify metadata name 'PGOFuncName' and 'PGOName', by supporting read
of this metadata for backward compatibility and generating 'PGOName' only.
Extract the value profile data from
and returns them if
is
annotated with value profile data. Returns an empty vector otherwise.
Defined at line 1401 of file llvm/lib/ProfileData/InstrProf.cpp
-
void initializeUnifyLoopExitsLegacyPassPass (PassRegistry & )Defined at line 73 of file llvm/lib/Transforms/Utils/UnifyLoopExits.cpp
-
FunctionPass * createGCLoweringPass ()-----------------------------------------------------------------------------
Defined at line 105 of file llvm/lib/CodeGen/GCRootLowering.cpp
-
void initializeUnpackMachineBundlesPass (PassRegistry & )Defined at line 44 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
void initializeUnreachableBlockElimLegacyPassPass (PassRegistry & )Defined at line 59 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp
-
bool isKnownToBeAPowerOfTwo (Register Val, const MachineRegisterInfo & MRI, GISelValueTracking * ValueTracking)Test if the given value is known to have exactly one bit set. This differs
from computeKnownBits in that it doesn't necessarily determine which bit is
set.
Defined at line 1119 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void initializeUnreachableMachineBlockElimLegacyPass (PassRegistry & )Defined at line 102 of file llvm/lib/CodeGen/UnreachableBlockElim.cpp
-
void initializeVerifierLegacyPassPass (PassRegistry & )Defined at line 8135 of file llvm/lib/IR/Verifier.cpp
-
void initializeVirtRegMapWrapperLegacyPass (PassRegistry & )Defined at line 62 of file llvm/lib/CodeGen/VirtRegMap.cpp
-
MCAsmParser * createMCAsmParser (SourceMgr & , MCContext & , MCStreamer & , const MCAsmInfo & , unsigned int CB)Create an MCAsmParser instance for parsing assembly similar to gas syntax
Defined at line 6308 of file llvm/lib/MC/MCParser/AsmParser.cpp
-
void initializeVirtRegRewriterLegacyPass (PassRegistry & )Defined at line 268 of file llvm/lib/CodeGen/VirtRegMap.cpp
-
bool convertUTF8ToUTF16String (StringRef SrcUTF8, SmallVectorImpl<UTF16> & DstUTF16)Converts a UTF-8 string into a UTF-16 string with native endianness.
Defined at line 199 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
InlineResult isInlineViable (Function & Callee)Check if it is mechanically possible to inline the function
based
on the contents of the function.
See also
as an additional precondition necessary to
perform a valid inline in a particular use context.
Defined at line 3316 of file llvm/lib/Analysis/InlineCost.cpp
-
void initializeWasmEHPreparePass (PassRegistry & )Defined at line 159 of file llvm/lib/CodeGen/WasmEHPrepare.cpp
-
void initializeWindowsSecureHotPatchingPass (PassRegistry & )Defined at line 201 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
-
bool isKnownNeverNaN (Register Val, const MachineRegisterInfo & MRI, bool SNaN)Returns true if
can be assumed to never be a NaN. If
is true,
this returns if
can be assumed to never be a signaling NaN.
Defined at line 822 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
BasicBlock * SplitBlock (BasicBlock * Old, int SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Split the specified block at the specified instruction.
If
is true, splitBlockBefore handles the block
splitting. Otherwise, execution proceeds as described below.
Everything before
stays in
and everything starting with
moves to a new block. The two blocks are joined by an unconditional
branch. The new block with name
is returned.
Defined at line of file
-
BasicBlock * SplitBlock (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName, bool Before)Split the specified block at the specified instruction.
If
is true, splitBlockBefore handles the block
splitting. Otherwise, execution proceeds as described below.
Everything before
stays in
and everything starting with
moves to a new block. The two blocks are joined by an unconditional
branch. The new block with name
is returned.
Defined at line 1059 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
InlineResult InlineFunction (CallBase & CB, InlineFunctionInfo & IFI, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)This function inlines the called function into the basic
block of the caller. This returns false if it is not possible to inline
this call. The program is still in a well defined state if this occurs
though.
Note that this only does one level of inlining. For example, if the
instruction 'call B' is inlined, and 'B' calls 'C', then the call to 'C' now
exists in the instruction stream. Similarly this will inline a recursive
function by one level.
Note that while this routine is allowed to cleanup and optimize the
*inlined* code to minimize the actual inserted code, it must not delete
code in the caller as users of this routine may have pointers to
instructions in the caller that need to remain stable.
If ForwardVarArgsTo is passed, inlining a function with varargs is allowed
and all varargs at the callsite will be passed to any calls to
ForwardVarArgsTo. The caller of InlineFunction has to make sure any varargs
are only used by ForwardVarArgsTo.
The callee's function attributes are merged into the callers' if
MergeAttributes is set to true.
Defined at line 3413 of file llvm/lib/Transforms/Utils/InlineFunction.cpp
-
void initializeWinEHPreparePass (PassRegistry & )Defined at line 124 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
MDNode * getPGOFuncNameMetadata (const Function & F)Return the PGOFuncName meta data associated with a function.
Defined at line 1440 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool IsSingleCodeUnitUTF8Codepoint (unsigned int )Defined at line 306 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
bool isSpecialPass (StringRef PassID, const int & Specials)Defined at line of file
-
bool isSpecialPass (StringRef PassID, const std::vector<StringRef> & Specials)Defined at line 45 of file llvm/lib/IR/PassInstrumentation.cpp
-
MCAsmParser * createMCMasmParser (SourceMgr & , MCContext & , MCStreamer & , const MCAsmInfo & , tm , unsigned int CB)Create an MCAsmParser instance for parsing Microsoft MASM-style assembly
Defined at line 6265 of file llvm/lib/MC/MCParser/MasmParser.cpp
-
FunctionPass * createShadowStackGCLoweringPass ()ShadowStackGCLowering - Implements the custom lowering mechanism
used by the shadow stack GC. Only runs on functions which opt in to
the shadow stack collector.
Defined at line 142 of file llvm/lib/CodeGen/ShadowStackGCLowering.cpp
-
void initializeWriteBitcodePassPass (PassRegistry & )Defined at line 69 of file llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
-
bool IsSingleCodeUnitUTF16Codepoint (unsigned int )Defined at line 308 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
void initializeXRayInstrumentationLegacyPass (PassRegistry & )Defined at line 334 of file llvm/lib/CodeGen/XRayInstrumentation.cpp
-
basic_string getPGOName (const GlobalVariable & V, bool InLTO)Defined at line 437 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool IsSingleCodeUnitUTF32Codepoint (unsigned int )Defined at line 312 of file llvm/lib/Support/ConvertUTFWrapper.cpp
-
optional getLoopEstimatedTripCount (Loop * L, unsigned int * EstimatedLoopInvocationWeight)Return either:
-
if the implementation is unable to handle the loop form
of
(e.g.,
must have a latch block that controls the loop exit).
- The value of
from the loop metadata of
if that metadata is present. In the special case that the value is
zero, return
instead as that is historically what callers
expect when a loop is estimated to execute no iterations (i.e., its header
is not reached).
- Else, a new estimate of the trip count from the latch branch weights of
An estimated trip count is always a valid positive trip count, saturated at
In addition, if
then either:
- Set
to the weight of the latch's branch
to the loop exit.
- Do not set it, and return
if the current implementation
cannot compute that weight (e.g., if
does not have a latch block that
controls the loop exit) or the weight is zero (because zero cannot be
used to compute new branch weights that reflect the estimated trip count).
TODO: Eventually, once all passes have migrated away from setting branch
weights to indicate estimated trip counts, this function will drop the
parameter.
Defined at line 868 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
Value * salvageDebugInfoImpl (Instruction & I, uint64_t CurrentLocOps, SmallVectorImpl<uint64_t> & Ops, SmallVectorImpl<Value *> & AdditionalValues)Given an instruction
and DIExpression
operating on
it, append the effects of
to the DIExpression operand list
or return
if it cannot be salvaged.
is the number of SSA values referenced by the
incoming
/
I = add %a, i32 1
Return = %a
Ops = llvm::dwarf::DW_OP_lit1 llvm::dwarf::DW_OP_add
I = add %a, %b
Return = %a
Ops = llvm::dwarf::DW_OP_LLVM_arg0 llvm::dwarf::DW_OP_add
AdditionalValues = %b
Returns
the first non-constant operand
implicitly referred to by Ops. If
references more than one
non-constant operand, any additional operands are added to
Defined at line 2274 of file llvm/lib/Transforms/Utils/Local.cpp
-
raw_ostream & operator<< (raw_ostream & OS, CaptureComponents CC)Defined at line 64 of file llvm/lib/Support/ModRef.cpp
-
Align inferAlignFromPtrInfo (MachineFunction & MF, const MachinePointerInfo & MPO)Defined at line 905 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
MapVector<Instruction *, uint64_t> computeMinimumValueSizes (ArrayRef Blocks, DemandedBits & DB, const TargetTransformInfo * TTI)Compute a map of integer instructions to their minimum legal type
size.
C semantics force sub-int-sized values (e.g. i8, i16) to be promoted to int
type (e.g. i32) whenever arithmetic is performed on them.
For targets with native i8 or i16 operations, usually InstCombine can shrink
the arithmetic type down again. However InstCombine refuses to create
illegal types, so for targets without i8 or i16 registers, the lengthening
and shrinking remains.
Most SIMD ISAs (e.g. NEON) however support vectors of i8 or i16 even when
their scalar equivalents do not, so during vectorization it is important to
remove these lengthens and truncates when deciding the profitability of
vectorization.
This function analyzes the given range of instructions and determines the
minimum type size each can be converted to. It attempts to remove or
minimize type size changes across each def-use chain, so for example in the
following code:
%1 = load i8, i8*
%2 = add i8 %1, 2
%3 = load i16, i16*
%4 = zext i8 %2 to i32
%5 = zext i16 %3 to i32
%6 = add i32 %4, %5
%7 = trunc i32 %6 to i16
Instruction %6 must be done at least in i16, so computeMinimumValueSizes
will return: {%1: 16, %2: 16, %3: 16, %4: 16, %5: 16, %6: 16, %7: 16}.
If the optional TargetTransformInfo is provided, this function tries harder
to do less work by only looking at illegal types.
Defined at line 808 of file llvm/lib/Analysis/VectorUtils.cpp
-
void createPGOFuncNameMetadata (Function & F, StringRef PGOFuncName)Create the PGOFuncName meta data if PGOFuncName is different from
function's raw name. This should only apply to internal linkage functions
declared by users only.
TODO: Update all callers to 'createPGONameMetadata' and deprecate this
function.
Defined at line 1460 of file llvm/lib/ProfileData/InstrProf.cpp
-
int getReleaseModeAdvisor (Module & M, ModuleAnalysisManager & MAM, std::function<bool (CallBase &)> GetDefaultAdvice)Defined at line 75 of file llvm/lib/Analysis/MLInlineAdvisor.cpp
-
InlineResult InlineFunction (CallBase & CB, InlineFunctionInfo & IFI, PGOContextualProfile & CtxProf, bool MergeAttributes, AAResults * CalleeAAR, bool InsertLifetime, Function * ForwardVarArgsTo, OptimizationRemarkEmitter * ORE)Inline. If successful, update the contextual profile (if a valid one is
given).
The contextual profile data is organized in trees, as follows:
- each node corresponds to a function
- the root of each tree corresponds to an "entrypoint" - e.g.
RPC handler for server side
- the path from the root to a node is a particular call path
- the counters stored in a node are counter values observed in that
particular call path ("context")
- the edges between nodes are annotated with callsite IDs.
Updating the contextual profile after an inlining means, at a high level,
copying over the data of the callee, **intentionally without any value
scaling**, and copying over the callees of the inlined callee.
Defined at line 2363 of file llvm/lib/Transforms/Utils/InlineFunction.cpp
-
void createPGONameMetadata (GlobalObject & GO, StringRef PGOName)Create the PGOName metadata if a global object's PGO name is different from
its mangled name. This should apply to local-linkage global objects only.
Defined at line 1464 of file llvm/lib/ProfileData/InstrProf.cpp
-
StringRef::size_type StrInStrNoCase (StringRef s1, StringRef s2)StrInStrNoCase - Portable version of strcasestr. Locates the first
occurrence of string 's1' in string 's2', ignoring case. Returns
the offset of s2 in s1 or npos if s2 cannot be found.
Defined at line 23 of file llvm/lib/Support/StringExtras.cpp
-
int getDevelopmentModeAdvisor (Module & M, ModuleAnalysisManager & MAM, std::function<bool (CallBase &)> GetDefaultAdvice)Defined at line of file
-
void ComputeCrossModuleImport (const ModuleSummaryIndex & Index, const DenseMap<StringRef, GVSummaryMapTy> & ModuleToDefinedGVSummaries, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, FunctionImporter::ImportListsTy & ImportLists, DenseMap<StringRef, FunctionImporter::ExportSetTy> & ExportLists)Compute all the import and export for every module using the Index.
Defined at line 1218 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void ComputeCrossModuleImport (const ModuleSummaryIndex & Index, const int & ModuleToDefinedGVSummaries, function_ref<bool (GlobalValue::GUID, const GlobalValueSummary *)> isPrevailing, FunctionImporter::ImportListsTy & ImportLists, int & ExportLists)Compute all the imports and exports for every module in the Index.
contains for each Module a map
(GUID -> Summary) for every global defined in the module.
is a callback that will be called with a global value's GUID
and summary and should return whether the module corresponding to the
summary contains the linker-prevailing copy of that value.
will be populated with an entry for every Module we are
importing into. This entry is itself a map that can be passed to
FunctionImporter::importFunctions() above (see description there).
contains for each Module the set of globals (GUID) that will
be imported by another module, or referenced by such a function. I.e. this
is the set of globals that need to be promoted/renamed appropriately.
The module identifier strings that are the keys of the above two maps
are owned by the in-memory ModuleSummaryIndex the importing decisions
are made from (the module path for each summary is owned by the index's
module path string table).
Defined at line of file
-
MDNode * uniteAccessGroups (MDNode * AccGroups1, MDNode * AccGroups2)Compute the union of two access-group lists.
If the list contains just one access group, it is returned directly. If the
list is empty, returns nullptr.
Defined at line 988 of file llvm/lib/Analysis/VectorUtils.cpp
-
Register getFunctionLiveInPhysReg (MachineFunction & MF, const TargetInstrInfo & TII, MCRegister PhysReg, const TargetRegisterClass & RC, const DebugLoc & DL, LLT RegTy)Return a virtual register corresponding to the incoming argument register
This register is expected to have class
and optional type
This assumes all references to the register will use the same type.
If there is an existing live-in argument register, it will be returned.
This will also ensure there is a valid copy
Defined at line 922 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
BasicBlock * splitBlockBefore (BasicBlock * Old, int SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)Split the specified block at the specified instruction
All instructions before
are moved to a new block and all
instructions after
stay in the old block. The new block and the
old block are joined by inserting an unconditional branch to the end of the
new block. The new block with name
is returned.
Defined at line of file
-
BasicBlock * splitBlockBefore (BasicBlock * Old, ilist_iterator_w_bits SplitPt, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, const Twine & BBName)Split the specified block at the specified instruction
All instructions before
are moved to a new block and all
instructions after
stay in the old block. The new block and the
old block are joined by inserting an unconditional branch to the end of the
new block. The new block with name
is returned.
Defined at line 1067 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool needsComdatForCounter (const GlobalObject & GV, const Module & M)Check if we can use Comdat for profile variables. This will eliminate
the duplicated profile variables for Comdat functions.
Defined at line 1468 of file llvm/lib/ProfileData/InstrProf.cpp
-
pair getToken (StringRef Source, StringRef Delimiters)getToken - This function extracts one token from source, ignoring any
leading characters that appear in the Delimiters string, and ending the
token at any of the characters that appear in the Delimiters string. If
there are no tokens in the source string, an empty string is returned.
The function returns a pair containing the extracted token and the
remaining tail string.
Defined at line 39 of file llvm/lib/Support/StringExtras.cpp
-
bool setLoopEstimatedTripCount (Loop * L, unsigned int EstimatedTripCount, optional EstimatedLoopInvocationWeight)Set
with the value
in the loop metadata of
Return false if the implementation is unable
to handle the loop form of
(e.g.,
must have a latch block that
controls the loop exit). Otherwise, return true.
In addition, if
- Set the branch weight metadata of
to reflect that
has an
estimated
iterations and has
exit weight through the loop's latch.
- If
is zero, zero the branch weights.
TODO: Eventually, once all passes have migrated away from setting branch
weights to indicate estimated trip counts, this function will drop the
parameter.
Defined at line 942 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
MDNode * intersectAccessGroups (const Instruction * Inst1, const Instruction * Inst2)Compute the access-group list of access groups that
and
are both in. If either instruction does not access memory at all, it is
considered to be in every list.
If the list contains just one access group, it is returned directly. If the
list is empty, returns nullptr.
Defined at line 1009 of file llvm/lib/Analysis/VectorUtils.cpp
-
Error readAndDecodeStrings (StringRef NameStrings, std::function<Error (StringRef)> NameCallback)is a string composed of one or more possibly encoded
sub-strings. The substrings are separated by `
\
01` (returned by
InstrProf.h:getInstrProfNameSeparator). This method decodes the string and
calls `NameCallback` for each substring.
Defined at line 576 of file llvm/lib/ProfileData/InstrProf.cpp
-
bool operator== (const DWARFDie::iterator & LHS, const DWARFDie::iterator & RHS)Defined at line 391 of file llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h
-
bool replaceAllDbgUsesWith (Instruction & From, Value & To, Instruction & DomPoint, DominatorTree & DT)Point debug users of
to
or salvage them. Use this function
only when replacing all uses of
with
with a guarantee that
is going to be deleted.
Follow these rules to prevent use-before-def of
. If
is a linked Instruction, set
to
. If
is an unlinked Instruction, set
to the Instruction
will be inserted after.
. If
is not an Instruction (e.g a Constant), the choice of
is arbitrary. Pick
for simplicity.
If a debug user cannot be preserved without reordering variable updates or
introducing a use-before-def, it is either salvaged (
or deleted. Returns true if any debug users were updated.
Defined at line 2414 of file llvm/lib/Transforms/Utils/Local.cpp
-
Loop * cloneLoopWithPreheader (BasicBlock * Before, BasicBlock * LoopDomBB, Loop * OrigLoop, ValueToValueMapTy & VMap, const Twine & NameSuffix, LoopInfo * LI, DominatorTree * DT, SmallVectorImpl<BasicBlock *> & Blocks)Clones a loop
Returns the loop and the blocks in
Updates LoopInfo and DominatorTree assuming the loop is dominated by block
Insert the new blocks before block specified in
Defined at line 1009 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
Loop * cloneLoopWithPreheader (BasicBlock * Before, BasicBlock * LoopDomBB, Loop * OrigLoop, int & VMap, const Twine & NameSuffix, LoopInfo * LI, DominatorTree * DT, SmallVectorImpl<BasicBlock *> & Blocks)Clones a loop
Returns the loop and the blocks in
Updates LoopInfo and DominatorTree assuming the loop is dominated by block
Insert the new blocks before block specified in
Note: Only innermost loops are supported.
Defined at line of file
-
std::optional<InlineCost> shouldInline (CallBase & CB, TargetTransformInfo & CalleeTTI, function_ref<InlineCost (CallBase &)> GetInlineCost, OptimizationRemarkEmitter & ORE, bool EnableDeferral)Return the cost only if the inliner should attempt to inline at the given
CallSite. If we return the cost, we will emit an optimisation remark later
using that cost, so we won't do so from this function. Return std::nullopt
if inlining should not be attempted.
Defined at line 411 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
LLT getLCMType (LLT OrigTy, LLT TargetTy)Return the least common multiple type of
and
by
changing the number of vector elements or scalar bitwidth. The intent is a
G_MERGE_VALUES, G_BUILD_VECTOR, or G_CONCAT_VECTORS can be constructed from
elements, and unmerged into
It is an error to call
this function where one argument is a fixed vector and the other is a
scalable vector, since it is illegal to build a G_{MERGE|UNMERGE}_VALUES
between fixed and scalable vectors.
Defined at line 1195 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void SplitString (StringRef Source, SmallVectorImpl<StringRef> & OutFragments, StringRef Delimiters)SplitString - Split up the specified string according to the specified
delimiters, appending the result fragments to the output list.
Defined at line 52 of file llvm/lib/Support/StringExtras.cpp
-
LLT getCoverTy (LLT OrigTy, LLT TargetTy)Return smallest type that covers both
and
and is
multiple of TargetTy.
Defined at line 1262 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void getMetadataToPropagate (Instruction * Inst, SmallVectorImpl<std::pair<unsigned int, MDNode *>> & Metadata)Add metadata from
to
if it can be preserved after
vectorization.
Defined at line 1057 of file llvm/lib/Analysis/VectorUtils.cpp
-
void updateIndirectCalls (ModuleSummaryIndex & Index)Update call edges for indirect calls to local functions added from
SamplePGO when needed. Normally this is done during
computeDeadSymbolsAndUpdateIndirectCalls, but can be called standalone
when that is not called (e.g. during testing).
Defined at line 1424 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void remapInstructionsInBlocks (ArrayRef<BasicBlock *> Blocks, ValueToValueMapTy & VMap)Remaps instructions in
using the mapping in
Defined at line 991 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void remapInstructionsInBlocks (ArrayRef<BasicBlock *> Blocks, int & VMap)Remaps instructions in
using the mapping in
Defined at line of file
-
bool handleUnreachableTerminator (Instruction * I, SmallVectorImpl<Value *> & PoisonedValues)If a terminator in an unreachable basic block has an operand of type
Instruction, transform it into poison. Return true if any operands
are changed to poison. Original Values prior to being changed to poison
are returned in
Defined at line 2468 of file llvm/lib/Transforms/Utils/Local.cpp
-
void emitInlinedInto (OptimizationRemarkEmitter & ORE, DebugLoc DLoc, const BasicBlock * Block, const Function & Callee, const Function & Caller, bool IsMandatory, function_ref<void (OptimizationRemark &)> ExtraContext, const char * PassName)Emit ORE message.
Defined at line 526 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
BranchProbability getLoopProbability (Loop * L)Based on branch weight metadata, return either:
- An unknown probability if the implementation is unable to handle the loop
form of
(e.g.,
must have a latch block that controls the loop
exit).
- The probability
that, at the end of any iteration, the latch of
will start another iteration such that `1 - P` is the probability of
exiting the loop.
Defined at line 987 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
Error joinErrors (Error , Error )Concatenate errors. The resulting Error is unchecked, and contains the
ErrorInfo(s), if any, contained in E1, followed by the
ErrorInfo(s), if any, contained in E2.
Defined at line 442 of file llvm/include/llvm/Support/Error.h
-
LLVMContextRef getGlobalContextForCAPI ()Get the deprecated global context for use by the C API.
Defined at line 100 of file llvm/lib/IR/Core.cpp
-
bool operator== (const SDTypeConstraint & LHS, const SDTypeConstraint & RHS)Defined at line 1746 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
-
unsigned int removeAllNonTerminatorAndEHPadInstructions (BasicBlock * BB)Remove all instructions from a basic block other than its terminator
and any present EH pad instructions. Returns the number of instructions
that have been removed.
Defined at line 2485 of file llvm/lib/Transforms/Utils/Local.cpp
-
MachineFunctionPass * createMachineCopyPropagationPass (bool UseCopyInstr)Defined at line 1620 of file llvm/lib/CodeGen/MachineCopyPropagation.cpp
-
bool operator< (const SDTypeConstraint & LHS, const SDTypeConstraint & RHS)Defined at line 1772 of file llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
-
void emitInlinedIntoBasedOnCost (OptimizationRemarkEmitter & ORE, DebugLoc DLoc, const BasicBlock * Block, const Function & Callee, const Function & Caller, const InlineCost & IC, bool ForProfileContext, const char * PassName)Emit ORE message based in cost (default heuristic).
Defined at line 544 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
bool isRangeRelaxable (const MCSymbol * Begin, const MCSymbol * End)Determine whether the offset between two labels can change at link time.
Currently, this function is used only in DWARF info emission logic, where it
helps generate more optimal debug info when the offset between labels is
constant at link time.
Defined at line 94 of file llvm/lib/MC/MCSymbol.cpp
-
bool setLoopProbability (Loop * L, BranchProbability P)Set branch weight metadata for the latch of
to indicate that, at the
end of any iteration,
and `1 - P` are the probabilities of starting
another iteration and exiting the loop, respectively. Return false if the
implementation is unable to handle the loop form of
(e.g.,
must
have a latch block that controls the loop exit). Otherwise, return true.
Defined at line 995 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
BasicBlock * DuplicateInstructionsInSplitBetween (BasicBlock * BB, BasicBlock * PredBB, Instruction * StopAt, ValueToValueMapTy & ValueMapping, DomTreeUpdater & DTU)Duplicate non-Phi instructions from the beginning of block up to
StopAt instruction into a split block between BB and its predecessor.
Defined at line 1094 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
BasicBlock * DuplicateInstructionsInSplitBetween (BasicBlock * BB, BasicBlock * PredBB, Instruction * StopAt, int & ValueMapping, DomTreeUpdater & DTU)Split edge between BB and PredBB and duplicate all non-Phi instructions
from BB between its beginning and the StopAt instruction into the split
block. Phi nodes are not duplicated, but their uses are handled correctly:
we replace them with the uses of corresponding Phi inputs. ValueMapping
is used to map the original instructions from BB to their newly-created
copies. Returns the split block.
Defined at line of file
-
void computeDeadSymbolsAndUpdateIndirectCalls (ModuleSummaryIndex & Index, const DenseSet<GlobalValue::GUID> & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing)Compute all the symbols that are "dead": i.e these that can't be reached
in the graph from any of the given symbols listed in
Non-prevailing symbols are symbols without a
prevailing copy anywhere in IR and are normally dead,
predicate returns status of symbol.
Also update call edges for indirect calls to local functions added from
SamplePGO when needed.
Defined at line 1433 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void computeDeadSymbolsAndUpdateIndirectCalls (ModuleSummaryIndex & Index, const int & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing)Compute all the symbols that are "dead": i.e these that can't be reached
in the graph from any of the given symbols listed in
Non-prevailing symbols are symbols without a
prevailing copy anywhere in IR and are normally dead,
predicate returns status of symbol.
Also update call edges for indirect calls to local functions added from
SamplePGO when needed.
Defined at line of file
-
basic_string createGraphFilename (const Twine & Name, int & FD)Defined at line 111 of file llvm/lib/Support/GraphWriter.cpp
-
Instruction * propagateMetadata (Instruction * I, ArrayRef VL)Defined at line 1080 of file llvm/lib/Analysis/VectorUtils.cpp
-
unsigned int changeToUnreachable (Instruction * I, bool PreserveLCSSA, DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU)Insert an unreachable instruction before the specified
instruction, making it and the rest of the code in the block dead.
Defined at line 2513 of file llvm/lib/Transforms/Utils/Local.cpp
-
BasicBlock * SplitBlockPredecessors (BasicBlock * BB, ArrayRef<BasicBlock *> Preds, const char * Suffix, DominatorTree * DT, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)This method introduces at least one new basic block into the function and
moves some of the predecessors of BB to be predecessors of the new block.
The new predecessors are indicated by the Preds array. The new block is
given a suffix of 'Suffix'. Returns new basic block to which predecessors
from Preds are now pointing.
If BB is a landingpad block then additional basicblock might be introduced.
It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more
details on this case.
This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but
no other analyses. In particular, it does not preserve LoopSimplify
(because it's complicated to handle the case where one of the edges being
split is an exit of a loop with other exits).
FIXME: deprecated, switch to the DomTreeUpdater-based one.
Defined at line 1387 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool getConstantDataArrayInfo (const Value * V, ConstantDataArraySlice & Slice, unsigned int ElementSize, uint64_t Offset)If V refers to an initialized global constant, set Slice either to
its initializer if the size of its elements equals ElementSize, or,
for ElementSize == 8, to its representation as an array of unsiged
char. Return true on success.
Offset is in the unit "nr of ElementSize sized elements".
Defined at line 6666 of file llvm/lib/Analysis/ValueTracking.cpp
-
void addLocationToRemarks (OptimizationRemark & Remark, DebugLoc DLoc)Add location info to ORE message.
Defined at line 500 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
void updateProfileCallee (Function * Callee, int64_t EntryDelta, const ValueMap<const Value *, WeakTrackingVH> * VMap)Updates profile information by adjusting the entry count by adding
EntryDelta then scaling callsite information by the new count divided by the
old count. VMap is used during inlinng to also update the new clone
Defined at line 2063 of file llvm/lib/Transforms/Utils/InlineFunction.cpp
-
void updateProfileCallee (Function * Callee, int64_t EntryDelta, const int * VMap)Updates profile information by adjusting the entry count by adding
EntryDelta then scaling callsite information by the new count divided by the
old count. VMap is used during inlinng to also update the new clone
Defined at line of file
-
void computeDeadSymbolsWithConstProp (ModuleSummaryIndex & Index, const int & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing, bool ImportEnabled)Compute dead symbols and run constant propagation in combined index
after that.
Defined at line of file
-
void computeDeadSymbolsWithConstProp (ModuleSummaryIndex & Index, const DenseSet<GlobalValue::GUID> & GUIDPreservedSymbols, function_ref<PrevailingType (GlobalValue::GUID)> isPrevailing, bool ImportEnabled)Compute dead symbols and propagate constants in combined index.
Defined at line 1549 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void setInlineRemark (CallBase & CB, StringRef Message)Set the inline-remark attribute.
Defined at line 399 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
BranchProbability getBranchProbability (BranchInst * B, bool ForFirstTarget)Based on branch weight metadata, return either:
- An unknown probability if the implementation cannot extract the
probability (e.g.,
must have exactly two target labels, so it must be
a conditional branch).
- The probability
that control flows from
to its first target
label such that `1 - P` is the probability of control flowing to its
second target label, or vice-versa if
is false.
Defined at line 1003 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
const std::error_category & instrprof_category ()Defined at line 193 of file llvm/lib/ProfileData/InstrProf.cpp
-
basic_string inlineCostStr (const InlineCost & IC)Utility for extracting the inline cost message to a string.
Defined at line 392 of file llvm/lib/Analysis/InlineAdvisor.cpp
-
LLT getGCDType (LLT OrigTy, LLT TargetTy)Return a type where the total size is the greatest common divisor of
and
This will try to either change the number of vector
elements, or bitwidth of scalars. The intent is the result type can be used
as the result of a G_UNMERGE_VALUES from
and then some
combination of G_MERGE_VALUES, G_BUILD_VECTOR and G_CONCAT_VECTORS (possibly
with intermediate casts) can re-form
If these are vectors with different element types, this will try to produce
a vector with a compatible total size, but the element type of
If
this can't be satisfied, this will produce a scalar smaller than the
original vector elements. It is an error to call this function where
one argument is a fixed vector and the other is a scalable vector, since it
is illegal to build a G_{MERGE|UNMERGE}_VALUES between fixed and scalable
vectors.
In the worst case, this returns LLT::scalar(1)
Defined at line 1283 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
BasicBlock * changeToInvokeAndSplitBasicBlock (CallInst * CI, BasicBlock * UnwindEdge, DomTreeUpdater * DTU)Convert the CallInst to InvokeInst with the specified unwind edge basic
block. This also splits the basic block where CI is located, because
InvokeInst is a terminator instruction. Returns the newly split basic
block.
Defined at line 2603 of file llvm/lib/Transforms/Utils/Local.cpp
-
void printEscapedString (StringRef Name, raw_ostream & Out)Print each character of the specified string, escaping it if it is not
printable or if it is an escape char.
Defined at line 62 of file llvm/lib/Support/StringExtras.cpp
-
void identifyNoAliasScopesToClone (ArrayRef<BasicBlock *> BBs, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified
basic blocks and extract their scope. These are candidates for duplication
when cloning.
Defined at line 1239 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DDGNode & N)Defined at line 81 of file llvm/lib/Analysis/DDG.cpp
-
bool convertToDeclaration (GlobalValue & GV)Converts value
to declaration, or replaces with a declaration if
it is an alias. Returns true if converted, false if replaced.
Defined at line 1631 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
bool getConstantStringInfo (const Value * V, StringRef & Str, bool TrimAtNul)Extract bytes from the initializer of the constant array V, which need
not be a nul-terminated string. On success, store the bytes in Str and
return true. When TrimAtNul is set, Str will contain only the bytes up
to but not including the first nul. Return false on failure.
Defined at line 6761 of file llvm/lib/Analysis/ValueTracking.cpp
-
Constant * createBitMaskForGaps (IRBuilderBase & Builder, unsigned int VF, const InterleaveGroup<Instruction> & Group)Create a mask that filters the members of an interleave group where there
are gaps.
For example, the mask for
with interleave-factor 3
and
4, that has only its first member present is:
<
1,0,0,1,0,0,1,0,0,1,0,0>
Note: The result is a mask of 0's and 1's, as opposed to the other
create[*]Mask() utilities which create a shuffle mask (mask that
consists of indices).
Defined at line 1128 of file llvm/lib/Analysis/VectorUtils.cpp
-
void printHTMLEscaped (StringRef String, raw_ostream & Out)Print each character of the specified string, escaping HTML special
characters.
Defined at line 73 of file llvm/lib/Support/StringExtras.cpp
-
raw_ostream & operator<< (raw_ostream & OS, NodeKind K)Defined at line 58 of file llvm/lib/Analysis/DDG.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DDGEdge & E)Defined at line 176 of file llvm/lib/Analysis/DDG.cpp
-
bool setBranchProbability (BranchInst * B, BranchProbability P, bool ForFirstTarget)Set branch weight metadata for
to indicate that
and `1 - P` are
the probabilities of control flowing to its first and second target labels,
respectively, or vice-versa if
is false. Return false if
the implementation cannot set the probability (e.g.,
must have exactly
two target labels, so it must be a conditional branch). Otherwise, return
true.
Defined at line 1018 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
raw_ostream & operator<< (raw_ostream & OS, EdgeKind K)===--------------------------------------------------------------------===//
DDGEdge implementation
===--------------------------------------------------------------------===//
Defined at line 156 of file llvm/lib/Analysis/DDG.cpp
-
void printLowerCase (StringRef String, raw_ostream & Out)printLowerCase - Print each character as lowercase if it is uppercase.
Defined at line 90 of file llvm/lib/Support/StringExtras.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const DataDependenceGraph & G)Defined at line 252 of file llvm/lib/Analysis/DDG.cpp
-
uint64_t GetStringLength (const Value * V, unsigned int CharSize)If we can compute the length of the string pointed to by
the specified pointer, return 'len+1'. If we can't, return 0.
Defined at line 6872 of file llvm/lib/Analysis/ValueTracking.cpp
-
void identifyNoAliasScopesToClone (ilist_iterator_w_bits Start, ilist_iterator_w_bits End, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified
instruction range and extract their scope. These are candidates for
duplication when cloning.
Defined at line 1247 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void identifyNoAliasScopesToClone (int Start, int End, SmallVectorImpl<MDNode *> & NoAliasDeclScopes)Find the 'llvm.experimental.noalias.scope.decl' intrinsics in the specified
instruction range and extract their scope. These are candidates for
duplication when cloning.
Defined at line of file
-
Instruction * removeUnwindEdge (BasicBlock * BB, DomTreeUpdater * DTU)Replace 'BB's terminator with one that does not have an unwind successor
block. Rewrites `invoke` to `call`, etc. Updates any PHIs in unwind
successor. Returns the instruction that replaced the original terminator,
which might be a call in case the original terminator was an invoke.
Parameters
BB Block whose terminator will be replaced. Its terminator must have an unwind successor.Defined at line 2845 of file llvm/lib/Transforms/Utils/Local.cpp
-
BasicBlock * SplitBlockPredecessors (BasicBlock * BB, ArrayRef<BasicBlock *> Preds, const char * Suffix, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)This method introduces at least one new basic block into the function and
moves some of the predecessors of BB to be predecessors of the new block.
The new predecessors are indicated by the Preds array. The new block is
given a suffix of 'Suffix'. Returns new basic block to which predecessors
from Preds are now pointing.
If BB is a landingpad block then additional basicblock might be introduced.
It will have Suffix+".split_lp". See SplitLandingPadPredecessors for more
details on this case.
This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but
no other analyses. In particular, it does not preserve LoopSimplify
(because it's complicated to handle the case where one of the edges being
split is an exit of a loop with other exits).
Defined at line 1395 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool hasIterationCountInvariantInParent (Loop * L, ScalarEvolution & SE)Check inner loop (L) backedge count is known to be invariant on all
iterations of its outer loop. If the loop has no parent, this is trivially
true.
Defined at line 1031 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
basic_string convertToSnakeFromCamelCase (StringRef input)Converts a string from camel-case to snake-case by replacing all uppercase
letters with '_' followed by the letter in lowercase, except if the
uppercase letter is the first character of the string.
Defined at line 95 of file llvm/lib/Support/StringExtras.cpp
-
FunctionPass * createGVNPass ()Create a legacy GVN pass.
Defined at line 3402 of file llvm/lib/Transforms/Scalar/GVN.cpp
-
const Value * getArgumentAliasingToReturnedPointer (const CallBase * Call, bool MustPreserveNullness)This function returns call pointer argument that is considered the same by
aliasing rules. You CAN'T use it to replace one value with another. If
is true, the call must preserve the nullness of
the pointer.
Defined at line 6883 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool removeUnreachableBlocks (Function & F, DomTreeUpdater * DTU, MemorySSAUpdater * MSSAU)Remove all blocks that can not be reached from the function's entry.
Returns true if any basic block was removed.
Defined at line 2883 of file llvm/lib/Transforms/Utils/Local.cpp
-
void getLoopAnalysisUsage (AnalysisUsage & AU)Helper to consistently add the set of standard passes to a loop pass's
All loop passes should call this as part of implementing their
Defined at line 142 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
basic_string convertToCamelFromSnakeCase (StringRef input, bool capitalizeFirst)Converts a string from snake-case to camel-case by replacing all occurrences
of '_' followed by a lowercase letter with the letter in uppercase.
Optionally allow capitalization of the first letter (if it is a lowercase
letter)
Defined at line 115 of file llvm/lib/Support/StringExtras.cpp
-
void gatherImportedSummariesForModule (StringRef ModulePath, const DenseMap<StringRef, GVSummaryMapTy> & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, GVSummaryPtrSet & DecSummaries)Compute the set of summaries needed for a ThinLTO backend compilation of
Defined at line 1563 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void gatherImportedSummariesForModule (StringRef ModulePath, const int & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, GVSummaryPtrSet & DecSummaries)Compute the set of summaries needed for a ThinLTO backend compilation of
This includes summaries from that module (in case any global summary based
optimizations were recorded) and from any definitions in other modules that
should be imported.
will be populated with the needed summaries
from each required module path. Use a std::map instead of StringMap to get
stable order for bitcode emission.
will be popluated with the subset of of summary pointers
that have 'declaration' import type among all summaries the module need.
Defined at line of file
-
void gatherImportedSummariesForModule (StringRef ModulePath, const int & ModuleToDefinedGVSummaries, const FunctionImporter::ImportMapTy & ImportList, int & ModuleToSummariesForIndex, int & DecSummaries)Compute the set of summaries needed for a ThinLTO backend compilation of
This includes summaries from that module (in case any global summary based
optimizations were recorded) and from any definitions in other modules that
should be imported.
will be populated with the needed summaries
from each required module path. Use a std::map instead of StringMap to get
stable order for bitcode emission.
will be popluated with the subset of of summary pointers
that have 'declaration' import type among all summaries the module need.
Defined at line of file
-
SmallVector createReplicatedMask (unsigned int ReplicationFactor, unsigned int VF)Create a mask with replicated elements.
This function creates a shuffle mask for replicating each of the
elements in a vector
times. It can be used to
transform a mask of
elements into a mask of
*
elements used by a predicated
interleaved-group of loads/stores whose Interleaved-factor ==
For example, the mask for
and
is:
<
0,0,0,1,1,1,2,2,2,3,3,3>
Defined at line 1148 of file llvm/lib/Analysis/VectorUtils.cpp
-
void cloneNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, DenseMap<MDNode *, MDNode *> & ClonedScopes, StringRef Ext, LLVMContext & Context)Duplicate the specified list of noalias decl scopes.
The 'Ext' string is added as an extension to the name.
Afterwards, the ClonedScopes contains the mapping of the original scope
MDNode onto the cloned scope.
Be aware that the cloned scopes are still part of the original scope domain.
Defined at line 1143 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void cloneNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, int & ClonedScopes, StringRef Ext, LLVMContext & Context)Duplicate the specified list of noalias decl scopes.
The 'Ext' string is added as an extension to the name.
Afterwards, the ClonedScopes contains the mapping of the original scope
MDNode onto the cloned scope.
Be aware that the cloned scopes are still part of the original scope domain.
Defined at line of file
-
FunctionPass * createStackProtectorPass ()createStackProtectorPass - This pass adds stack protectors to functions.
Defined at line 164 of file llvm/lib/CodeGen/StackProtector.cpp
-
FunctionPass * createMachineVerifierPass (const std::string & Banner)createMachineVerifierPass - This pass verifies cenerated machine code
instructions for correctness.
Defined at line 413 of file llvm/lib/CodeGen/MachineVerifier.cpp
-
LazyCallGraph::SCC & updateCGAndAnalysisManagerForFunctionPass (LazyCallGraph & G, LazyCallGraph::SCC & C, LazyCallGraph::Node & N, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM)Helper to update the call graph after running a function pass.
Function passes can only mutate the call graph in specific ways. This
routine provides a helper that updates the call graph in those ways
including returning whether any changes were made and populating a CG
update result struct for the overall CGSCC walk.
Defined at line 1182 of file llvm/lib/Analysis/CGSCCPassManager.cpp
-
void combineMetadataForCSE (Instruction * K, const Instruction * J, bool DoesKMove)Combine the metadata of two instructions so that K can replace J. This
specifically handles the case of CSE-like transformations. Some
metadata can only be kept if K dominates J. For this to be correct,
K cannot be hoisted.
Unknown metadata is removed.
Defined at line 3094 of file llvm/lib/Transforms/Utils/Local.cpp
-
Error EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const int & ModuleToSummariesForIndex)Emit into
the files module
will import from.
Defined at line of file
-
Error EmitImportsFiles (StringRef ModulePath, StringRef OutputFilename, const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex)Emit into
the files module
will import from.
Defined at line 1604 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void adaptNoAliasScopes (llvm::Instruction * I, const int & ClonedScopes, LLVMContext & Context)Adapt the metadata for the specified instruction according to the
provided mapping. This is normally used after cloning an instruction, when
some noalias scopes needed to be cloned.
Defined at line of file
-
void adaptNoAliasScopes (llvm::Instruction * I, const DenseMap<MDNode *, MDNode *> & ClonedScopes, LLVMContext & Context)Adapt the metadata for the specified instruction according to the
provided mapping. This is normally used after cloning an instruction, when
some noalias scopes needed to be cloned.
Defined at line 1168 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
void SplitLandingPadPredecessors (BasicBlock * OrigBB, ArrayRef<BasicBlock *> Preds, const char * Suffix, const char * Suffix2, SmallVectorImpl<BasicBlock *> & NewBBs, DomTreeUpdater * DTU, LoopInfo * LI, MemorySSAUpdater * MSSAU, bool PreserveLCSSA)This method transforms the landing pad, OrigBB, by introducing two new basic
blocks into the function. One of those new basic blocks gets the
predecessors listed in Preds. The other basic block gets the remaining
predecessors of OrigBB. The landingpad instruction OrigBB is clone into both
of the new basic blocks. The new blocks are given the suffixes 'Suffix1' and
'Suffix2', and are returned in the NewBBs vector.
This currently updates the LLVM IR, DominatorTree, LoopInfo, and LCCSA but
no other analyses. In particular, it does not preserve LoopSimplify
(because it's complicated to handle the case where one of the edges being
split is an exit of a loop with other exits).
Defined at line 1507 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
std::optional<int> getSplatIndex (MachineInstr & MI)Defined at line 1337 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createDwarfEHPass (CodeGenOptLevel OptLevel)createDwarfEHPass - This pass mulches exception handling code into a form
adapted to code generation. Required if using dwarf exception handling.
Defined at line 407 of file llvm/lib/CodeGen/DwarfEHPrepare.cpp
-
bool isIntrinsicReturningPointerAliasingArgumentWithoutCapturing (const CallBase * Call, bool MustPreserveNullness){launder,strip}.invariant.group returns pointer that aliases its argument,
and it only captures pointer by returning it.
These intrinsics are not marked as nocapture, because returning is
considered as capture. The arguments are not marked as returned neither,
because it would make it useless. If
is true,
the intrinsic must preserve the nullness of the pointer.
Defined at line 6897 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool canSinkOrHoistInst (Instruction & I, AAResults * AA, DominatorTree * DT, Loop * CurLoop, MemorySSAUpdater & MSSAU, bool TargetExecutesOncePerLoop, SinkAndHoistLICMFlags & LICMFlags, OptimizationRemarkEmitter * ORE)Returns true if is legal to hoist or sink this instruction disregarding the
possible introduction of faults. Reasoning about potential faulting
instructions is the responsibility of the caller since it is challenging to
do efficiently from within this routine.
is true only when it is guaranteed that the
target executes at most once per execution of the loop body. This is used
to assess the legality of duplicating atomic loads. Generally, this is
true when moving out of loop and not true when moving into loops.
If
is set use it to emit optimization remarks.
Defined at line 1166 of file llvm/lib/Transforms/Scalar/LICM.cpp
-
std::optional<APInt> getIConstantSplatVal (Register Reg, const MachineRegisterInfo & MRI)Defined at line 1447 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void processImportsFiles (StringRef ModulePath, const ModuleToSummariesForIndexTy & ModuleToSummariesForIndex, function_ref<void (const std::string &)> F)Call
passing each of the files module
will import from.
Defined at line 1619 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void processImportsFiles (StringRef ModulePath, const int & ModuleToSummariesForIndex, function_ref<void (const std::string &)> F)Call
passing each of the files module
will import from.
Defined at line of file
-
void combineAAMetadata (Instruction * K, const Instruction * J)Combine metadata of two instructions, where instruction J is a memory
access that has been merged into K. This will intersect alias-analysis
metadata, while preserving other known metadata.
Defined at line 3099 of file llvm/lib/Transforms/Utils/Local.cpp
-
FunctionPass * createWinEHPass (bool DemoteCatchSwitchPHIOnly)createWinEHPass - Prepares personality functions used by MSVC on Windows,
in addition to the Itanium LSDA based personalities.
Defined at line 127 of file llvm/lib/CodeGen/WinEHPrepare.cpp
-
SmallVector createInterleaveMask (unsigned int VF, unsigned int NumVecs)Create an interleave shuffle mask.
This function creates a shuffle mask for interleaving
vectors of
vectorization factor
into a single wide vector. The mask is of the
form:
<
0, VF, VF * 2, ..., VF * (NumVecs - 1), 1, VF + 1, VF * 2 + 1, ...>
For example, the mask for VF = 4 and NumVecs = 2 is:
<
0, 4, 1, 5, 2, 6, 3, 7>.
Defined at line 1158 of file llvm/lib/Analysis/VectorUtils.cpp
-
void cloneAndAdaptNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, ArrayRef<BasicBlock *> NewBlocks, LLVMContext & Context, StringRef Ext)Clone the specified noalias decl scopes. Then adapt all instructions in the
NewBlocks basicblocks to the cloned versions.
'Ext' will be added to the duplicate scope names.
Defined at line 1202 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
std::optional<APInt> getIConstantSplatVal (const MachineInstr & MI, const MachineRegisterInfo & MRI)Defined at line 1459 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void copyMetadataForLoad (LoadInst & Dest, const LoadInst & Source)Copy the metadata from the source instruction to the destination (the
replacement for the source instruction).
Defined at line 3103 of file llvm/lib/Transforms/Utils/Local.cpp
-
ReturnInst * FoldReturnIntoUncondBranch (ReturnInst * RI, BasicBlock * BB, BasicBlock * Pred, DomTreeUpdater * DTU)This method duplicates the specified return instruction into a predecessor
which ends in an unconditional branch. If the return instruction returns a
value defined by a PHI, propagate the right value into the return. It
returns the new return instruction in the predecessor.
Defined at line 1519 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
LazyCallGraph::SCC & updateCGAndAnalysisManagerForCGSCCPass (LazyCallGraph & G, LazyCallGraph::SCC & C, LazyCallGraph::Node & N, CGSCCAnalysisManager & AM, CGSCCUpdateResult & UR, FunctionAnalysisManager & FAM)Helper to update the call graph after running a CGSCC pass.
CGSCC passes can only mutate the call graph in specific ways. This
routine provides a helper that updates the call graph in those ways
including returning whether any changes were made and populating a CG
update result struct for the overall CGSCC walk.
Defined at line 1189 of file llvm/lib/Analysis/CGSCCPassManager.cpp
-
const Value * getUnderlyingObject (const Value * V, unsigned int MaxLookup)This method strips off any GEP address adjustments, pointer casts
or `llvm.threadlocal.address` from the specified value
returning the
original object being addressed. Note that the returned value has pointer
type if the specified value does. If the
value is non-zero, it
limits the number of instructions to be stripped off.
Defined at line 6953 of file llvm/lib/Analysis/ValueTracking.cpp
-
FunctionPass * createSjLjEHPreparePass (const TargetMachine * TM)Public Interface To the SjLjEHPrepare pass.
Defined at line 102 of file llvm/lib/CodeGen/SjLjEHPrepare.cpp
-
Intrinsic::ID getReductionIntrinsicID (RecurKind RK)Returns the llvm.vector.reduce intrinsic that corresponds to the recurrence
kind.
Defined at line 1053 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
std::optional<int64_t> getIConstantSplatSExtVal (Register Reg, const MachineRegisterInfo & MRI)Defined at line 1465 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void patchReplacementInstruction (Instruction * I, Value * Repl)Patch the replacement so that it is not more restrictive than the value
being replaced. It assumes that the replacement does not get moved from
its original position.
Defined at line 3156 of file llvm/lib/Transforms/Utils/Local.cpp
-
Intrinsic::ID getMinMaxReductionIntrinsicID (Intrinsic::ID IID)Returns the llvm.vector.reduce min/max intrinsic that corresponds to the
intrinsic op.
Defined at line 1099 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void cloneAndAdaptNoAliasScopes (ArrayRef<MDNode *> NoAliasDeclScopes, Instruction * IStart, Instruction * IEnd, LLVMContext & Context, StringRef Ext)Clone the specified noalias decl scopes. Then adapt all instructions in the
[IStart, IEnd] (IEnd included !) range to the cloned versions. 'Ext' will be
added to the duplicate scope names.
Defined at line 1219 of file llvm/lib/Transforms/Utils/CloneFunction.cpp
-
FunctionPass * createWasmEHPass ()createWasmEHPass - This pass adapts exception handling code to use
WebAssembly's exception handling scheme.
Defined at line 162 of file llvm/lib/CodeGen/WasmEHPrepare.cpp
-
void thinLTOFinalizeInModule (Module & TheModule, const GVSummaryMapTy & DefinedGlobals, bool PropagateAttrs)Based on the information recorded in the summaries during global
summary-based analysis:
1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide
and consider visibility from other definitions for ELF) in
2. (optional) Apply propagated function attributes to
if
PropagateAttrs is true
Defined at line 1666 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
void thinLTOFinalizeInModule (Module & TheModule, const int & DefinedGlobals, bool PropagateAttrs)Based on the information recorded in the summaries during global
summary-based analysis:
1. Resolve prevailing symbol linkages and constrain visibility (CanAutoHide
and consider visibility from other definitions for ELF) in
2. (optional) Apply propagated function attributes to
if
PropagateAttrs is true
Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, CaptureInfo Info)Defined at line 83 of file llvm/lib/Support/ModRef.cpp
-
unsigned int getArithmeticReductionInstruction (Intrinsic::ID RdxID)Returns the arithmetic instruction opcode used when expanding a reduction.
Defined at line 1115 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
unsigned int replaceNonLocalUsesWith (Instruction * From, Value * To)Replace each use of 'From' with 'To', if that use does not belong to basic
block where 'From' is defined. Returns the number of replacements made.
Defined at line 3220 of file llvm/lib/Transforms/Utils/Local.cpp
-
std::optional<int64_t> getIConstantSplatSExtVal (const MachineInstr & MI, const MachineRegisterInfo & MRI)Defined at line 1474 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void emitAppleAccelTableImpl (AsmPrinter * Asm, AccelTableBase & Contents, StringRef Prefix, const MCSymbol * SecBegin, ArrayRef<AppleAccelTableData::Atom> Atoms)Defined at line 635 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
-
Intrinsic::ID getReductionForBinop (BinaryOps Opc)Returns the reduction intrinsic id corresponding to the binary operation.
Defined at line 1145 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
const Value * getUnderlyingObjectAggressive (const Value * V)Like getUnderlyingObject(), but will try harder to find a single underlying
object. In particular, this function also looks through selects and phis.
Defined at line 7042 of file llvm/lib/Analysis/ValueTracking.cpp
-
SmallVector createStrideMask (unsigned int Start, unsigned int Stride, unsigned int VF)Create a stride shuffle mask.
This function creates a shuffle mask whose elements begin at
and
are incremented by
The mask can be used to deinterleave an
interleaved vector into separate vectors of vectorization factor
The
mask is of the form:
<Start
, Start + Stride, ..., Start + Stride * (VF - 1)>
For example, the mask for Start = 0, Stride = 2, and VF = 4 is:
<
0, 2, 4, 6>
Defined at line 1168 of file llvm/lib/Analysis/VectorUtils.cpp
-
void thinLTOInternalizeModule (Module & TheModule, const int & DefinedGlobals)Internalize
based on the information recorded in the summaries
during global summary-based analysis.
Defined at line of file
-
void thinLTOInternalizeModule (Module & TheModule, const GVSummaryMapTy & DefinedGlobals)Internalize
based on the information recorded in the summaries
during global summary-based analysis.
Defined at line 1795 of file llvm/lib/Transforms/IPO/FunctionImport.cpp
-
Intrinsic::ID getMinMaxReductionIntrinsicOp (Intrinsic::ID RdxID)Returns the min/max intrinsic used when expanding a min/max reduction.
Defined at line 1163 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const BasicBlockEdge & Edge)Replace each use of 'From' with 'To' if that use is dominated by
the given edge. Returns the number of replacements made.
Defined at line 3235 of file llvm/lib/Transforms/Utils/Local.cpp
-
std::optional<FPValueAndVReg> getFConstantSplat (Register VReg, const MachineRegisterInfo & MRI, bool AllowUndef)Returns a floating point scalar constant of a build vector splat if it
exists. When
== true some elements can be undef but not all.
Defined at line 1480 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Intrinsic::ID getMinMaxReductionIntrinsicOp (RecurKind RK)Returns the min/max intrinsic used when expanding a min/max reduction.
Defined at line 1186 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const BasicBlock * BB)Replace each use of 'From' with 'To' if that use is dominated by
the end of the given BasicBlock. Returns the number of replacements made.
Defined at line 3242 of file llvm/lib/Transforms/Utils/Local.cpp
-
RecurKind getMinMaxReductionRecurKind (Intrinsic::ID RdxID)Returns the recurence kind used when expanding a min/max reduction.
Defined at line 1215 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
FunctionPass * createUnpackMachineBundles (std::function<bool (const MachineFunction &)> Ftor)Defined at line 80 of file llvm/lib/CodeGen/MachineInstrBundle.cpp
-
bool isBuildVectorConstantSplat (Register Reg, const MachineRegisterInfo & MRI, int64_t SplatValue, bool AllowUndef)Return true if the specified register is defined by G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are
or undef.
Defined at line 1407 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Predicate getMinMaxReductionPredicate (RecurKind RK)Returns the comparison predicate used when expanding a min/max reduction.
Defined at line 1234 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
unsigned int replaceDominatedUsesWith (Value * From, Value * To, DominatorTree & DT, const Instruction * I)Replace each use of 'From' with 'To' if that use is dominated by the
given instruction. Returns the number of replacements made.
Defined at line 3249 of file llvm/lib/Transforms/Utils/Local.cpp
-
void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, const DwarfDebug & DD, ArrayRef<std::unique_ptr<DwarfCompileUnit>> CUs)Defined at line of file
-
void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, const DwarfDebug & DD, int CUs)Defined at line 642 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
-
Instruction * SplitBlockAndInsertIfThen (Value * Cond, ilist_iterator_w_bits SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)Split the containing block at the specified instruction - everything before
SplitBefore stays in the old basic block, and the rest of the instructions
in the BB are moved to a new block. The two blocks are connected by a
conditional branch (with value of Cmp being the condition).
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
ThenBlock
SplitBefore
Tail
If
is not specified, a new block will be created for it.
If
is true, the newly created block will end with
UnreachableInst, otherwise it branches to Tail.
Returns the NewBasicBlock's terminator.
Updates DTU and LI if given.
Defined at line 1577 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Instruction * SplitBlockAndInsertIfThen (Value * Cond, int SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ThenBlock)Split the containing block at the specified instruction - everything before
SplitBefore stays in the old basic block, and the rest of the instructions
in the BB are moved to a new block. The two blocks are connected by a
conditional branch (with value of Cmp being the condition).
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
ThenBlock
SplitBefore
Tail
If
is not specified, a new block will be created for it.
If
is true, the newly created block will end with
UnreachableInst, otherwise it branches to Tail.
Returns the NewBasicBlock's terminator.
Updates DTU and LI if given.
Defined at line of file
-
SmallVector createSequentialMask (unsigned int Start, unsigned int NumInts, unsigned int NumUndefs)Create a sequential shuffle mask.
This function creates shuffle mask whose elements are sequential and begin
at
The mask contains
integers and is padded with
undef values. The mask is of the form:
<Start
, Start + 1, ... Start + NumInts - 1, undef_1, ... undef_NumUndefs>
For example, the mask for Start = 0, NumInsts = 4, and NumUndefs = 4 is:
<
0, 1, 2, 3, undef, undef, undef, undef>
Defined at line 1177 of file llvm/lib/Analysis/VectorUtils.cpp
-
Value * getReductionIdentity (Intrinsic::ID RdxID, Type * Ty, FastMathFlags FMF)Given information about an
.vector.reduce.* intrinsic, return
the identity value for the reduction.
Defined at line 1403 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool isBuildVectorConstantSplat (Register Reg, const MachineRegisterInfo & MRI, const APInt & SplatValue, bool AllowUndef)Return true if the specified register is defined by G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are
or undef.
Defined at line 1416 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const BasicBlockEdge & Edge, function_ref<bool (const Use &, const Value *)> ShouldReplace)Replace each use of 'From' with 'To' if that use is dominated by
the given edge and the callback ShouldReplace returns true. Returns the
number of replacements made.
Defined at line 3256 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * getRecurrenceIdentity (RecurKind K, Type * Tp, FastMathFlags FMF)Given information about an recurrence kind, return the identity
for the
.vector.reduce.* used to generate it.
Defined at line 1445 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
SmallVector createUnaryMask (ArrayRef Mask, unsigned int NumElts)Given a shuffle mask for a binary shuffle, create the equivalent shuffle
mask assuming both operands are identical. This assumes that the unary
shuffle will use elements from operand 0 (operand 1 will be unused).
Defined at line 1190 of file llvm/lib/Analysis/VectorUtils.cpp
-
void emitDWARF5AccelTable (AsmPrinter * Asm, DWARF5AccelTable & Contents, ArrayRef<std::variant<MCSymbol *, uint64_t>> CUs, llvm::function_ref<std::optional<DWARF5AccelTable::UnitIndexAndEncoding> (const DWARF5AccelTableData &)> getIndexForEntry)Emit a DWARFv5 Accelerator Table consisting of entries in the specified
AccelTable. The
contains either symbols keeping offsets to the
start of compilation unit, either offsets to the start of compilation
unit themselves.
Defined at line 710 of file llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp
-
bool isBuildVectorConstantSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, int64_t SplatValue, bool AllowUndef)Return true if the specified instruction is a G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are
or undef.
Defined at line 1432 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
Value * createMinMaxOp (IRBuilderBase & Builder, RecurKind RK, Value * Left, Value * Right)Returns a Min/Max operation corresponding to MinMaxRecurrenceKind.
The Builder's fast-math-flags must be set to propagate the expected values.
Defined at line 1256 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const BasicBlock * BB, function_ref<bool (const Use &, const Value *)> ShouldReplace)Replace each use of 'From' with 'To' if that use is dominated by
the end of the given BasicBlock and the callback ShouldReplace returns true.
Returns the number of replacements made.
Defined at line 3265 of file llvm/lib/Transforms/Utils/Local.cpp
-
shared_ptr CreateZ3Solver ()Convenience method to create and Z3Solver object
Defined at line 982 of file llvm/lib/Support/Z3Solver.cpp
-
Value * getOrderedReduction (IRBuilderBase & Builder, Value * Acc, Value * Src, unsigned int Op, RecurKind MinMaxKind)Generates an ordered vector reduction using extracts to reduce the value.
Defined at line 1274 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const T & OneElt)@
{
Deduction guide to construct an ArrayRef from a single element.
Defined at line of file
-
bool isBuildVectorConstantSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, const APInt & SplatValue, bool AllowUndef)Return true if the specified instruction is a G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are
or undef.
Defined at line 1439 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
unsigned int replaceDominatedUsesWithIf (Value * From, Value * To, DominatorTree & DT, const Instruction * I, function_ref<bool (const Use &, const Value *)> ShouldReplace)Replace each use of 'From' with 'To' if that use is dominated by
the given instruction and the callback ShouldReplace returns true. Returns
the number of replacements made.
Defined at line 3274 of file llvm/lib/Transforms/Utils/Local.cpp
-
Value * concatenateVectors (IRBuilderBase & Builder, ArrayRef Vecs)Concatenate a list of vectors.
This function generates code that concatenate the vectors in
into a
single large vector. The number of vectors should be greater than one, and
their element types should be the same. The number of elements in the
vectors should also be the same; however, if the last vector has fewer
elements, it will be padded with undefs.
Defined at line 1232 of file llvm/lib/Analysis/VectorUtils.cpp
-
void getUnderlyingObjects (const Value * V, SmallVectorImpl<const Value *> & Objects, const LoopInfo * LI, unsigned int MaxLookup)This method is similar to getUnderlyingObject except that it can
look through phi and select instructions and return multiple objects.
If LoopInfo is passed, loop phis are further analyzed. If a pointer
accesses different objects in each iteration, we don't look through the
phi node. E.g. consider this loop nest:
int **A;
for (i)
for (j) {
A[i][j] = A[i-1][j] * B[j]
}
This is transformed by Load-PRE to stash away A[i] for the next iteration
of the outer loop:
Curr = A[0]; // Prev_0
for (i: 1..N) {
Prev = Curr; // Prev = PHI (Prev_0, Curr)
Curr = A[i];
for (j: 0..N) {
Curr[j] = Prev[j] * B[j]
}
}
Since A[i] and A[i-1] are independent pointers, getUnderlyingObjects
should not assume that Curr and Prev share the same underlying object thus
it shouldn't look through the phi above.
Defined at line 7000 of file llvm/lib/Analysis/ValueTracking.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const T * data, size_t length)Deduction guide to construct an ArrayRef from a pointer and length
Defined at line of file
-
void registerCodeGenCallback (PassInstrumentationCallbacks & PIC, TargetMachine & )Defined at line 536 of file llvm/lib/CodeGen/TargetPassConfig.cpp
-
Instruction * SplitBlockAndInsertIfElse (Value * Cond, ilist_iterator_w_bits SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false
path of the branch.
Defined at line 1590 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Instruction * SplitBlockAndInsertIfElse (Value * Cond, int SplitBefore, bool Unreachable, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI, BasicBlock * ElseBlock)Similar to SplitBlockAndInsertIfThen, but the inserted block is on the false
path of the branch.
Defined at line of file
-
Value * getShuffleReduction (IRBuilderBase & Builder, Value * Src, unsigned int Op, ReductionShuffle RS, RecurKind MinMaxKind)Generates a vector reduction using shufflevectors to reduce the value.
Fast-math-flags are propagated using the IRBuilder's setting.
Defined at line 1299 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const T * data, const T * end)Deduction guide to construct an ArrayRef from a range
Defined at line of file
-
bool isBuildVectorAllZeros (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndef)Return true if the specified instruction is a G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are 0 or undef.
Defined at line 1488 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool maskIsAllZeroOrUndef (Value * Mask)Given a mask vector of i1, Return true if all of the elements of this
predicate mask are known to be false or undef. That is, return true if all
lanes can be assumed inactive.
Defined at line 1260 of file llvm/lib/Analysis/VectorUtils.cpp
-
FunctionPass * createInterleavedAccessPass ()InterleavedAccess Pass - This pass identifies and matches interleaved
memory accesses to target specific intrinsics.
Defined at line 203 of file llvm/lib/CodeGen/InterleavedAccessPass.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const SmallVectorImpl<T> & Vec)Deduction guide to construct an ArrayRef from a SmallVector
Defined at line of file
-
bool getUnderlyingObjectsForCodeGen (const Value * V, SmallVectorImpl<Value *> & Objects)This is a wrapper around getUnderlyingObjects and adds support for basic
ptrtoint+arithmetic+inttoptr sequences.
Defined at line 7115 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool canConstantBeExtended (const APInt * C, Type * NarrowType, PartialReductionExtendKind ExtKind)Check if a constant
can be safely treated as having been extended
from a narrower type with the given extension kind.
Defined at line 1717 of file llvm/lib/Transforms/Vectorize/VPlan.cpp
-
template <typename T, unsigned N>ArrayRef<T> <deduction guide for ArrayRef> (const SmallVector<T, N> & Vec)Deduction guide to construct an ArrayRef from a SmallVector
Defined at line of file
-
bool maskIsAllOneOrUndef (Value * Mask)Given a mask vector of i1, Return true if all of the elements of this
predicate mask are known to be true or undef. That is, return true if all
lanes can be assumed active.
Defined at line 1286 of file llvm/lib/Analysis/VectorUtils.cpp
-
FunctionPass * createInterleavedLoadCombinePass ()InterleavedLoadCombines Pass - This pass identifies interleaved loads and
combines them into wide loads detectable by InterleavedAccessPass
Defined at line 1371 of file llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
-
bool callsGCLeafFunction (const CallBase * Call, const TargetLibraryInfo & TLI)Return true if this call calls a gc leaf function.
A leaf function is a function that does not safepoint the thread during its
execution. During a call or invoke to such a function, the callers stack
does not have to be made parseable.
Most passes can and should ignore this information, and it is only used
during lowering by the GC infrastructure.
Defined at line 3283 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool isBuildVectorAllOnes (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndef)Return true if the specified instruction is a G_BUILD_VECTOR or
G_BUILD_VECTOR_TRUNC where all of the elements are ~0 or undef.
Defined at line 1494 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
AllocaInst * findAllocaForValue (Value * V, bool OffsetZero)Returns unique alloca where the value comes from, or nullptr.
If OffsetZero is true check that V points to the begining of the alloca.
Defined at line 7148 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * createSimpleReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind)Create a reduction of the given vector. The reduction operation
is described by the
parameter. min/max reductions require
additional information supplied in
Fast-math-flags are propagated using the IRBuilder's setting.
Defined at line 1453 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const int & Vec)Deduction guide to construct an ArrayRef from a std::vector
Defined at line of file
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const std::vector<T> & Vec)Deduction guide to construct an ArrayRef from a std::vector
Defined at line of file
-
void dumpTypeQualifiedName (const DWARFDie & DIE, raw_ostream & OS)Defined at line 865 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
-
void dumpTypeUnqualifiedName (const DWARFDie & DIE, raw_ostream & OS, std::string * OriginalFullName)Defined at line 869 of file llvm/lib/DebugInfo/DWARF/DWARFDie.cpp
-
bool maskContainsAllOneOrUndef (Value * Mask)Given a mask vector of i1, Return true if any of the elements of this
predicate mask are known to be true or undef. That is, return true if at
least one lane can be assumed active.
Defined at line 1312 of file llvm/lib/Analysis/VectorUtils.cpp
-
ModulePass * createLowerEmuTLSPass ()LowerEmuTLS - This pass generates __emutls_[vt].xyz variables for all
TLS variables for the emulated TLS model.
Defined at line 84 of file llvm/lib/CodeGen/LowerEmuTLS.cpp
-
Value * createSimpleReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind, Value * Mask, Value * EVL)Overloaded function to generate vector-predication intrinsics for
reduction.
Defined at line 1491 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <typename T, std::size_t N>ArrayRef<T> <deduction guide for ArrayRef> (const std::array<T, N> & Vec)Deduction guide to construct an ArrayRef from a std::array
Defined at line of file
-
ModulePass * createDXILResourceTypeWrapperPassPass ()Defined at line 1135 of file llvm/lib/Analysis/DXILResource.cpp
-
void copyNonnullMetadata (const LoadInst & OldLI, MDNode * N, LoadInst & NewLI)Copy a nonnull metadata node to a new load instruction.
This handles mapping it to range metadata if the new load is an integer
load instead of a pointer load.
Defined at line 3312 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool onlyUsedByLifetimeMarkers (const Value * V)Return true if the only users of this pointer are lifetime markers.
Defined at line 7211 of file llvm/lib/Analysis/ValueTracking.cpp
-
APInt possiblyDemandedEltsInMask (Value * Mask)Given a mask vector of the form
<Y
x i1>, return an APInt (of bitwidth Y)
for each lane which may be active.
Defined at line 1339 of file llvm/lib/Analysis/VectorUtils.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (const ArrayRef<T> & Vec)Deduction guide to construct an ArrayRef from an ArrayRef (const)
Defined at line of file
-
bool isConstantOrConstantVector (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowFP, bool AllowOpaqueConstants)Return true if the specified instruction is known to be a constant, or a
vector of constants.
If
is true, this will consider G_FCONSTANT in addition to
G_CONSTANT. If
is true, constant-like instructions
such as G_GLOBAL_VALUE will also be considered.
Defined at line 1551 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ModulePass * createPreISelIntrinsicLoweringPass ()This pass lowers the
@
llvm.load.relative and
@
llvm.objc.* intrinsics to
instructions. This is unsafe to do earlier because a pass may combine the
constant initializer into the load, which may result in an overflowing
evaluation.
Defined at line 812 of file llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
-
Value * createAnyOfReduction (IRBuilderBase & B, Value * Src, Value * InitVal, PHINode * OrigPhi)Create a reduction of the given vector
for a reduction of kind
RecurKind::AnyOf. The start value of the reduction is
Defined at line 1357 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool onlyUsedByLifetimeMarkersOrDroppableInsts (const Value * V)Return true if the only users of this pointer are lifetime markers or
droppable instructions.
Defined at line 7215 of file llvm/lib/Analysis/ValueTracking.cpp
-
template <typename T>ArrayRef<T> <deduction guide for ArrayRef> (ArrayRef<T> & Vec)Deduction guide to construct an ArrayRef from an ArrayRef
Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, const ValueLatticeElement & Val)Defined at line 112 of file llvm/lib/Analysis/ValueLattice.cpp
-
ChangeStatus operator| (ChangeStatus l, ChangeStatus r)Logic operators for the change status enum class.
{
Defined at line 184 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
void copyRangeMetadata (const DataLayout & DL, const LoadInst & OldLI, MDNode * N, LoadInst & NewLI)Copy a range metadata node to a new load instruction.
This handles mapping it to nonnull metadata if the new load is a pointer
load instead of an integer load and the range doesn't cover null.
Defined at line 3337 of file llvm/lib/Transforms/Utils/Local.cpp
-
ChangeStatus & operator|= (ChangeStatus & l, ChangeStatus r)Defined at line 187 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
template <typename T, size_t N>ArrayRef<T> <deduction guide for ArrayRef> (const T (&)[N] Arr)Deduction guide to construct an ArrayRef from a C array.
Defined at line of file
-
ChangeStatus operator& (ChangeStatus l, ChangeStatus r)Defined at line 191 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
Value * createFindLastIVReduction (IRBuilderBase & B, Value * Src, RecurKind RdxKind, Value * Start, Value * Sentinel)Create a reduction of the given vector
for a reduction of the
kind RecurKind::FindLastIV.
Defined at line 1387 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
ChangeStatus & operator&= (ChangeStatus & l, ChangeStatus r)Defined at line 194 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
Pass * createGlobalMergePass (const TargetMachine * TM, unsigned int MaximalOffset, bool OnlyOptimizeForSize, bool MergeExternalByDefault, bool MergeConstantByDefault, bool MergeConstAggressiveByDefault)GlobalMerge - This pass merges internal (by default) globals into structs
to enable reuse of a base pointer by indexed addressing modes.
It can also be configured to focus on size optimizations only.
Defined at line 766 of file llvm/lib/CodeGen/GlobalMerge.cpp
-
void dropDebugUsers (Instruction & I)Remove the debug intrinsic instructions for the given instruction.
Defined at line 3361 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool isNullOrNullSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndefs)Return true if the value is a constant 0 integer or a splatted vector of a
constant 0 integer (with no undefs if
is false). This will
handle G_BUILD_VECTOR and G_BUILD_VECTOR_TRUNC as truncation is not an issue
for null values.
Defined at line 1595 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool isNotCrossLaneOperation (const Instruction * I)Return true if the instruction doesn't potentially cross vector lanes. This
condition is weaker than checking that the instruction is lanewise: lanewise
means that the same operation is splatted across all lanes, but we also
include the case where there is a different operation on each lane, as long
as the operation only uses data from that lane. An example of an operation
that is not lanewise, but doesn't cross vector lanes is insertelement.
Defined at line 7220 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * createOrderedReduction (IRBuilderBase & B, RecurKind RdxKind, Value * Src, Value * Start)Create an ordered reduction intrinsic using the given recurrence
kind
Defined at line 1506 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
template <class T>MutableArrayRef<T> <deduction guide for MutableArrayRef> (T & OneElt)@
{
Deduction guide to construct a `MutableArrayRef` from a single element
Defined at line of file
-
void SplitBlockAndInsertIfThenElse (Value * Cond, int SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen,
but also creates the ElseBlock.
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
ThenBlock
else
ElseBlock
SplitBefore
Tail
Updates DT if given.
Defined at line of file
-
void SplitBlockAndInsertIfThenElse (Value * Cond, ilist_iterator_w_bits SplitBefore, Instruction ** ThenTerm, Instruction ** ElseTerm, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)SplitBlockAndInsertIfThenElse is similar to SplitBlockAndInsertIfThen,
but also creates the ElseBlock.
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
ThenBlock
else
ElseBlock
SplitBefore
Tail
Updates DT if given.
Defined at line 1603 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void hoistAllInstructionsInto (BasicBlock * DomBlock, Instruction * InsertPt, BasicBlock * BB)Hoist all of the instructions in the
to the dominant block
by moving its instructions to the insertion point
The moved instructions receive the insertion point debug location values
(DILocations) and their debug intrinsic instructions are removed.
Defined at line 3368 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool isAllOnesOrAllOnesSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI, bool AllowUndefs)Return true if the value is a constant -1 integer or a splatted vector of a
constant -1 integer (with no undefs if
is false).
Defined at line 1613 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createSafeStackPass ()This pass splits the stack into a safe stack and an unsafe stack to
protect against stack-based overflow vulnerabilities.
Defined at line 990 of file llvm/lib/CodeGen/SafeStack.cpp
-
Value * createOrderedReduction (IRBuilderBase & B, RecurKind RdxKind, Value * Src, Value * Start, Value * Mask, Value * EVL)Overloaded function to generate vector-predication intrinsics for ordered
reduction.
Defined at line 1516 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
MachineInstrBuilder BuildMI (MachineFunction & MF, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, Register Reg, const MDNode * Variable, const MDNode * Expr)This version of the builder builds a DBG_VALUE intrinsic
for either a value in a register or a register-indirect
address. The convention is that a DBG_VALUE is indirect iff the
second operand is an immediate.
Defined at line 2364 of file llvm/lib/CodeGen/MachineInstr.cpp
-
template <class T>MutableArrayRef<T> <deduction guide for MutableArrayRef> (T * data, size_t length)Deduction guide to construct a `MutableArrayRef` from a pointer and
length.
Defined at line of file
-
DIExpression * getExpressionForConstant (DIBuilder & DIB, const Constant & C, Type & Ty)Given a constant, create a debug information expression.
Defined at line 3414 of file llvm/lib/Transforms/Utils/Local.cpp
-
template <class T>MutableArrayRef<T> <deduction guide for MutableArrayRef> (SmallVectorImpl<T> & Vec)Deduction guide to construct a `MutableArrayRef` from a `SmallVector`.
Defined at line of file
-
void remapDebugVariable (ValueToValueMapTy & Mapping, Instruction * Inst)Remap the operands of the debug records attached to
and the
operands of
itself if it's a debug intrinsic.
Defined at line 3456 of file llvm/lib/Transforms/Utils/Local.cpp
-
void remapDebugVariable (int & Mapping, Instruction * Inst)Remap the operands of the debug records attached to
and the
operands of
itself if it's a debug intrinsic.
Defined at line of file
-
MachineInstrBuilder BuildMI (MachineFunction & MF, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, ArrayRef<MachineOperand> MOs, const MDNode * Variable, const MDNode * Expr)This version of the builder builds a DBG_VALUE or DBG_VALUE_LIST intrinsic
for a MachineOperand.
Defined at line 2380 of file llvm/lib/CodeGen/MachineInstr.cpp
-
template <class T, unsigned N>MutableArrayRef<T> <deduction guide for MutableArrayRef> (SmallVector<T, N> & Vec)Defined at line of file
-
FunctionPass * createRegUsageInfoCollector ()This pass is executed POST-RA to collect which physical registers are
preserved by given machine function.
Defined at line 82 of file llvm/lib/CodeGen/RegUsageInfoCollector.cpp
-
void propagateIRFlags (Value * I, ArrayRef VL, Value * OpValue, bool IncludeWrapFlags)Get the intersection (logical and) of all of the potential IR flags
of each scalar operation (VL) that will be converted into a vector (I).
If OpValue is non-null, we only consider operations similar to OpValue
when intersecting.
Flag set: NSW, NUW (if IncludeWrapFlags is true), exact, and all of
fast-math.
Defined at line 1533 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
ValueProfRecord * getFirstValueProfRecord (ValueProfData * VPD)Return the first
instance.
Defined at line 611 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
template <class T>MutableArrayRef<T> <deduction guide for MutableArrayRef> (int & Vec)Deduction guide to construct a `MutableArrayRef` from a `std::vector`.
Defined at line of file
-
template <class T>MutableArrayRef<T> <deduction guide for MutableArrayRef> (std::vector<T> & Vec)Deduction guide to construct a `MutableArrayRef` from a `std::vector`.
Defined at line of file
-
ValueProfRecord * getValueProfRecordNext (ValueProfRecord * VPR)Use this method to advance to the next
Defined at line 600 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
FunctionPass * createRegUsageInfoPropPass ()Return a MachineFunction pass that identifies call sites
and propagates register usage information of callee to caller
if available with PysicalRegisterUsageInfo pass.
Defined at line 181 of file llvm/lib/CodeGen/RegUsageInfoPropagate.cpp
-
InstrProfValueData * getValueProfRecordValueData (ValueProfRecord * VPR)Return the pointer to the start of value data array.
Defined at line 579 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
template <class T, std::size_t N>MutableArrayRef<T> <deduction guide for MutableArrayRef> (std::array<T, N> & Vec)Deduction guide to construct a `MutableArrayRef` from a `std::array`.
Defined at line of file
-
bool isKnownNegativeInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)Returns true if we can prove that
is defined and always negative in
loop
Defined at line 1553 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
uint32_t getValueProfRecordHeaderSize (uint32_t NumValueSites)Return the
header size including the
padding bytes.
Defined at line 557 of file llvm/include/llvm/ProfileData/InstrProfData.inc
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, Register Reg, const MDNode * Variable, const MDNode * Expr)This version of the builder builds a DBG_VALUE intrinsic
for either a value in a register or a register-indirect
address and inserts it at position I.
Defined at line 2414 of file llvm/lib/CodeGen/MachineInstr.cpp
-
FunctionPass * createPBQPRegisterAllocator (char * customPassID)Create a PBQP register allocator instance.
Defined at line 949 of file llvm/lib/CodeGen/RegAllocPBQP.cpp
-
template <typename T, size_t N>MutableArrayRef<T> <deduction guide for MutableArrayRef> (T (&)[N] Arr)Deduction guide to construct a `MutableArrayRef` from a C array.
Defined at line of file
-
FunctionPass * createFreeMachineFunctionPass ()This pass frees the memory occupied by the MachineFunction.
Defined at line 149 of file llvm/lib/CodeGen/MachineModuleInfo.cpp
-
bool isKnownNonNegativeInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)Returns true if we can prove that
is defined and always non-negative in
loop
Defined at line 1560 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
std::optional<RegOrConstant> getVectorSplat (const MachineInstr & MI, const MachineRegisterInfo & MRI)Examples:
If called on the G_BUILD_VECTOR above, this will return a RegOrConstant
containing %reg.
In the above case, this will return a RegOrConstant containing 4.
Code
%reg = COPY $physreg %reg_splat = G_BUILD_VECTOR %reg, %reg, ..., %reg%cst = G_CONSTANT iN 4 %constant_splat = G_BUILD_VECTOR %cst, %cst, ..., %cstDefined at line 1500 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ModulePass * createGlobalMergeFuncPass ()This pass performs merging similar functions globally.
Defined at line 593 of file llvm/lib/CodeGen/GlobalMergeFunctions.cpp
-
bool isKnownPositiveInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)Returns true if we can prove that
is defined and always positive in
loop
Defined at line 1567 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
bool recognizeBSwapOrBitReverseIdiom (Instruction * I, bool MatchBSwaps, bool MatchBitReversals, SmallVectorImpl<Instruction *> & InsertedInsts)Try to match a bswap or bitreverse idiom.
If an idiom is matched, an intrinsic call is inserted before
Any added
instructions are returned in
They will all have been added
to a basic block.
A bitreverse idiom normally requires around 2*BW nodes to be searched (where
BW is the bitwidth of the integer type). A bswap idiom requires anywhere up
to BW / 4 nodes to be searched, so is significantly faster.
This function returns true on a successful match or false otherwise.
Defined at line 3761 of file llvm/lib/Transforms/Utils/Local.cpp
-
MachineInstrBuilder BuildMI (MachineBasicBlock & BB, int I, const DebugLoc & DL, const MCInstrDesc & MCID, bool IsIndirect, ArrayRef<MachineOperand> MOs, const MDNode * Variable, const MDNode * Expr)This version of the builder builds a DBG_VALUE, DBG_INSTR_REF, or
DBG_VALUE_LIST intrinsic for a machine operand and inserts it at position I.
Defined at line 2425 of file llvm/lib/CodeGen/MachineInstr.cpp
-
ModulePass * createMachineOutlinerPass (RunOutliner RunOutlinerMode)This pass performs outlining on machine instructions directly before
printing assembly.
Defined at line 596 of file llvm/lib/CodeGen/MachineOutliner.cpp
-
bool isConstantOrConstantVector (MachineInstr & MI, const MachineRegisterInfo & MRI)Determines if
defines a constant integer or a build vector of
constant integers. Treats undef values as constants.
Defined at line 1534 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool isSafeToSpeculativelyExecute (const Instruction * I, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)Return true if the instruction does not have any effects besides
calculating the result and does not have undefined behavior.
This method never returns true for an instruction that returns true for
mayHaveSideEffects; however, this method also does some other checks in
addition. It checks for undefined behavior, like dividing by zero or
loading from an invalid pointer (but not for undefined results, like a
shift with a shift amount larger than the width of the result). It checks
for malloc and alloca because speculatively executing them might cause a
memory leak. It also returns false for instructions related to control
flow, specifically terminators and PHI nodes.
If the CtxI is specified this method performs context-sensitive analysis
and returns true if it is safe to execute the instruction immediately
before the CtxI. If the instruction has (transitive) operands that don't
dominate CtxI, the analysis is performed under the assumption that these
operands will also be speculated to a point before CxtI.
If the CtxI is NOT specified this method only looks at the instruction
itself and its operands, so if this method returns true, it is safe to
move the instruction as long as the correct dominance relationships for
the operands and users hold.
If
is true, the information from non-constant operands
will be taken into account.
If
is true, UB-implying attributes will be ignored.
The caller is responsible for correctly propagating them after hoisting.
This method can return true for instructions that read memory;
for such instructions, moving them may change the resulting value.
Defined at line 7228 of file llvm/lib/Analysis/ValueTracking.cpp
-
FunctionPass * createExpandReductionsPass ()This pass expands the reduction intrinsics into sequences of shuffles.
Defined at line 182 of file llvm/lib/CodeGen/ExpandReductions.cpp
-
bool isKnownNonPositiveInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE)Returns true if we can prove that
is defined and always non-positive in
loop
Defined at line 1574 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
LegalizeResult createLibcall (MachineIRBuilder & MIRBuilder, const char * Name, const CallLowering::ArgInfo & Result, ArrayRef<CallLowering::ArgInfo> Args, CallingConv::ID CC, LostDebugLocObserver & LocObserver, MachineInstr * MI)Helper function that creates a libcall to the given
using the given
calling convention
Defined at line 583 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
-
MachineInstr * buildDbgValueForSpill (MachineBasicBlock & BB, int I, const MachineInstr & Orig, int FrameIndex, Register SpillReg)Clone a DBG_VALUE whose value has been spilled to FrameIndex.
Defined at line 2470 of file llvm/lib/CodeGen/MachineInstr.cpp
-
std::optional<APInt> isConstantOrConstantSplatVector (MachineInstr & MI, const MachineRegisterInfo & MRI)Determines if
defines a constant integer or a splat vector of
constant integers.
Defined at line 1570 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createReplaceWithVeclibLegacyPass ()This pass replaces intrinsics operating on vector operands with calls to
the corresponding function in a vector library (e.g., SVML, libmvec).
Defined at line 283 of file llvm/lib/CodeGen/ReplaceWithVeclib.cpp
-
bool cannotBeMaxInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE, bool Signed)Returns true if
is defined and never is equal to signed/unsigned max.
Defined at line 1592 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void deleteConstant (Constant * C)Free memory for a given constant. Assumes the constant has already been
removed from all relevant maps.
Defined at line 546 of file llvm/lib/IR/Constants.cpp
-
MachineInstr * buildDbgValueForSpill (MachineBasicBlock & BB, int I, const MachineInstr & Orig, int FrameIndex, const SmallVectorImpl<const MachineOperand *> & SpilledOperands)Defined at line 2493 of file llvm/lib/CodeGen/MachineInstr.cpp
-
FunctionPass * createExpandIRInstsPass ()Expands large div/rem instructions.
Defined at line of file
-
bool cannotBeMinInLoop (const SCEV * S, const Loop * L, ScalarEvolution & SE, bool Signed)Returns true if
is defined and never is equal to signed/unsigned min.
Defined at line 1581 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void maybeMarkSanitizerLibraryCallNoBuiltin (CallInst * CI, const TargetLibraryInfo * TLI)CodeGen has special handling for some string functions that may replace
them with target-specific intrinsics. Since that'd skip our interceptors
in ASan/MSan/TSan/DFSan, and thus make us miss some memory accesses,
we mark affected calls as NoBuiltin, which will disable optimization
in CodeGen.
Defined at line 3865 of file llvm/lib/Transforms/Utils/Local.cpp
-
LegalizeResult createLibcall (MachineIRBuilder & MIRBuilder, Libcall Libcall, const CallLowering::ArgInfo & Result, ArrayRef<CallLowering::ArgInfo> Args, LostDebugLocObserver & LocObserver, MachineInstr * MI)Helper function that creates the given libcall.
Defined at line 630 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
-
FunctionPass * createExpandMemCmpLegacyPass ()This pass expands memcmp() to load/stores.
Defined at line 1029 of file llvm/lib/CodeGen/ExpandMemCmp.cpp
-
std::optional<APFloat> isConstantOrConstantSplatVectorFP (MachineInstr & MI, const MachineRegisterInfo & MRI)Determines if
defines a float constant integer or a splat vector of
float constant integers.
Defined at line 1583 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
void SplitBlockAndInsertIfThenElse (Value * Cond, ilist_iterator_w_bits SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)Split the containing block at the specified instruction - everything before
SplitBefore stays in the old basic block, and the rest of the instructions
in the BB are moved to a new block. The two blocks are connected by a
conditional branch (with value of Cmp being the condition).
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
TrueBlock
else
/ FalseBlock
SplitBefore
Tail
If
is null, the resulting CFG won't contain the TrueBlock. If
is non-null and points to non-null BasicBlock pointer, that
block will be inserted as the TrueBlock. Otherwise a new block will be
created. Likewise for the
parameter.
If
or
is true, the corresponding newly
created blocks will end with UnreachableInst, otherwise with branches to
Tail. The function will not modify existing basic blocks passed to it. The
caller must ensure that Tail is reachable from Head.
Returns the newly created blocks in
and
Updates DTU and LI if given.
Defined at line 1618 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void SplitBlockAndInsertIfThenElse (Value * Cond, int SplitBefore, BasicBlock ** ThenBlock, BasicBlock ** ElseBlock, bool UnreachableThen, bool UnreachableElse, MDNode * BranchWeights, DomTreeUpdater * DTU, LoopInfo * LI)Split the containing block at the specified instruction - everything before
SplitBefore stays in the old basic block, and the rest of the instructions
in the BB are moved to a new block. The two blocks are connected by a
conditional branch (with value of Cmp being the condition).
Before:
Head
SplitBefore
Tail
After:
Head
if (Cond)
TrueBlock
else
/ FalseBlock
SplitBefore
Tail
If
is null, the resulting CFG won't contain the TrueBlock. If
is non-null and points to non-null BasicBlock pointer, that
block will be inserted as the TrueBlock. Otherwise a new block will be
created. Likewise for the
parameter.
If
or
is true, the corresponding newly
created blocks will end with UnreachableInst, otherwise with branches to
Tail. The function will not modify existing basic blocks passed to it. The
caller must ensure that Tail is reachable from Head.
Returns the newly created blocks in
and
Updates DTU and LI if given.
Defined at line of file
-
FunctionPass * createBreakFalseDeps ()Creates Break False Dependencies pass.
Defined at line 107 of file llvm/lib/CodeGen/BreakFalseDeps.cpp
-
void updateDbgValueForSpill (MachineInstr & Orig, int FrameIndex, Register Reg)Update a DBG_VALUE whose value has been spilled to FrameIndex. Useful when
modifying an instruction in place while iterating over a basic block.
Defined at line 2515 of file llvm/lib/CodeGen/MachineInstr.cpp
-
LegalizeResult createMemLibcall (MachineIRBuilder & MIRBuilder, MachineRegisterInfo & MRI, MachineInstr & MI, LostDebugLocObserver & LocObserver)Create a libcall to memcpy et al.
Defined at line 746 of file llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
-
FunctionPass * createIndirectBrExpandPass ()This pass expands indirectbr instructions.
Defined at line 98 of file llvm/lib/CodeGen/IndirectBrExpandPass.cpp
-
bool matchUnaryPredicate (const MachineRegisterInfo & MRI, Register Reg, std::function<bool (const Constant *)> Match, bool AllowUndefs)Attempt to match a unary predicate against a scalar/splat constant or every
element of a constant G_BUILD_VECTOR. If
is null, the source
value was undef.
Defined at line 1628 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool canReplaceOperandWithVariable (const Instruction * I, unsigned int OpIdx)Given an instruction, is it legal to set operand OpIdx to a non-constant
value?
Defined at line 3875 of file llvm/lib/Transforms/Utils/Local.cpp
-
FunctionPass * createCFIFixup ()Creates CFI Fixup pass.
Defined at line 95 of file llvm/lib/CodeGen/CFIFixup.cpp
-
hash_code hash_value (const APInt & Arg)Overload to compute a hash_code for an APInt value.
Defined at line 617 of file llvm/lib/Support/APInt.cpp
-
FunctionPass * createCFIInstrInserter ()Creates CFI Instruction Inserter pass.
Defined at line 153 of file llvm/lib/CodeGen/CFIInstrInserter.cpp
-
bool isConstTrueVal (const TargetLowering & TLI, int64_t Val, bool IsVector, bool IsFP)Returns true if given the TargetLowering's boolean contents information,
the value
contains a true value.
Defined at line 1660 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
int rewriteLoopExitValues (Loop * L, LoopInfo * LI, TargetLibraryInfo * TLI, ScalarEvolution * SE, const TargetTransformInfo * TTI, SCEVExpander & Rewriter, DominatorTree * DT, ReplaceExitVal ReplaceExitValue, SmallVector<WeakTrackingVH, 16> & DeadInsts)If the final value of any expressions that are recurrent in the loop can
be computed, substitute the exit values from the loop into any instructions
outside of the loop that use the final values of the current expressions.
Return the number of loop exit values that have been replaced, and the
corresponding phi node will be added to DeadInsts.
Defined at line 1714 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
FunctionPass * createExpandIRInstsPass (CodeGenOptLevel )Expands floating point instructions.
Defined at line of file
-
Value * invertCondition (Value * Condition)Invert the given true/false value, possibly reusing an existing copy.
Defined at line 3965 of file llvm/lib/Transforms/Utils/Local.cpp
-
bool isConstFalseVal (const TargetLowering & TLI, int64_t Val, bool IsVector, bool IsFP)Defined at line 1673 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createCFGuardLongjmpPass ()Creates CFGuard longjmp target identification pass.
Defined at line 60 of file llvm/lib/CodeGen/CFGuardLongjmp.cpp
-
FunctionPass * createEHContGuardTargetsPass ()Creates Windows EH Continuation Guard target identification pass.
Defined at line 58 of file llvm/lib/CodeGen/EHContGuardTargets.cpp
-
int64_t getICmpTrueVal (const TargetLowering & TLI, bool IsVector, bool IsFP)Returns an integer representing true, as defined by the
TargetBooleanContents.
Defined at line 1685 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
std::pair<Instruction *, Value *> SplitBlockAndInsertSimpleForLoop (Value * End, int SplitBefore)Insert a for (int i = 0; i
<
End; i++) loop structure (with the exception
that
is assumed > 0, and thus not checked on entry) at
Returns the first insert point in the loop body, and the
PHINode for the induction variable (i.e. "i" above).
Defined at line of file
-
std::pair<Instruction *, Value *> SplitBlockAndInsertSimpleForLoop (Value * End, ilist_iterator_w_bits SplitBefore)Insert a for (int i = 0; i
<
End; i++) loop structure (with the exception
that
is assumed > 0, and thus not checked on entry) at
Returns the first insert point in the loop body, and the
PHINode for the induction variable (i.e. "i" above).
Defined at line 1699 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool inferAttributesFromOthers (Function & F)If we can infer one attribute from another on the declaration of a
function, explicitly materialize the maximal set in the IR.
Defined at line 3999 of file llvm/lib/Transforms/Utils/Local.cpp
-
void dumpRegSetPressure (ArrayRef<unsigned int> SetPressure, const TargetRegisterInfo * TRI)Defined at line 81 of file llvm/lib/CodeGen/RegisterPressure.cpp
-
FunctionPass * createHardwareLoopsLegacyPass ()Create Hardware Loop pass.
Defined at line 598 of file llvm/lib/CodeGen/HardwareLoops.cpp
-
template <typename RangeT>void appendLoopsToWorklist (RangeT && , SmallPriorityWorklist<Loop *, 4> & )Utility that implements appending of loops onto a worklist given a range.
We want to process loops in postorder, but the worklist is a LIFO data
structure, so we append to it in *reverse* postorder.
For trees, a preorder traversal is a viable reverse postorder, so we
actually append using a preorder walk algorithm.
Defined at line 1953 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void saveUsesAndErase (MachineInstr & MI, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver, SmallInstListTy & DeadInstChain)Defined at line 1697 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createPseudoProbeInserter ()This pass inserts pseudo probe annotation for callsite profiling.
Defined at line 148 of file llvm/lib/CodeGen/PseudoProbeInserter.cpp
-
void eraseInstrs (ArrayRef<MachineInstr *> DeadInstrs, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver)Defined at line 1711 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool isSafeToSpeculativelyExecuteWithOpcode (unsigned int Opcode, const Instruction * Inst, const Instruction * CtxI, AssumptionCache * AC, const DominatorTree * DT, const TargetLibraryInfo * TLI, bool UseVariableInfo, bool IgnoreUBImplyingAttrs)This returns the same result as isSafeToSpeculativelyExecute if Opcode is
the actual opcode of Inst. If the provided and actual opcode differ, the
function (virtually) overrides the opcode of Inst with the provided
Opcode. There are come constraints in this case:
* If Opcode has a fixed number of operands (eg, as binary operators do),
then Inst has to have at least as many leading operands. The function
will ignore all trailing operands beyond that number.
* If Opcode allows for an arbitrary number of operands (eg, as CallInsts
do), then all operands are considered.
* The virtual instruction has to satisfy all typing rules of the provided
Opcode.
* This function is pessimistic in the following sense: If one actually
materialized the virtual instruction, then isSafeToSpeculativelyExecute
may say that the materialized instruction is speculatable whereas this
function may have said that the instruction wouldn't be speculatable.
This behavior is a shortcoming in the current implementation and not
intentional.
Defined at line 7237 of file llvm/lib/Analysis/ValueTracking.cpp
-
FunctionPass * createTypePromotionLegacyPass ()Create IR Type Promotion pass.
Defined at line 1045 of file llvm/lib/CodeGen/TypePromotion.cpp
-
void eraseInstr (MachineInstr & MI, MachineRegisterInfo & MRI, LostDebugLocObserver * LocObserver)Defined at line 1726 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
template <typename RangeT>void appendReversedLoopsToWorklist (RangeT && , SmallPriorityWorklist<Loop *, 4> & )Utility that implements appending of loops onto a worklist given a range.
It has the same behavior as appendLoopsToWorklist, but assumes the range of
loops has already been reversed, so it processes loops in the given order.
Defined at line 1928 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
void SplitBlockAndInsertForEachLane (ElementCount EC, Type * IndexTy, ilist_iterator_w_bits InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)Utility function for performing a given action on each lane of a vector
with
elements. To simplify porting legacy code, this defaults to
unrolling the implied loop for non-scalable element counts, but this is
not considered to be part of the contract of this routine, and is
expected to change in the future. The callback takes as arguments an
IRBuilder whose insert point is correctly set for instantiating the
given index, and a value which is (at runtime) the index to access.
This index *may* be a constant.
Defined at line 1727 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
void SplitBlockAndInsertForEachLane (ElementCount EC, Type * IndexTy, int InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)Utility function for performing a given action on each lane of a vector
with
elements. To simplify porting legacy code, this defaults to
unrolling the implied loop for non-scalable element counts, but this is
not considered to be part of the contract of this routine, and is
expected to change in the future. The callback takes as arguments an
IRBuilder whose insert point is correctly set for instantiating the
given index, and a value which is (at runtime) the index to access.
This index *may* be a constant.
Defined at line of file
-
FunctionPass * createMIRAddFSDiscriminatorsPass (FSDiscriminatorPass P)Add Flow Sensitive Discriminators. PassNum specifies the
sequence number of this pass (starting from 1).
Defined at line 51 of file llvm/lib/CodeGen/MIRFSDiscriminator.cpp
-
void salvageDebugInfo (const MachineRegisterInfo & MRI, MachineInstr & MI)Assuming the instruction
is going to be deleted, attempt to salvage
debug users of
by writing the effect of
in a DIExpression.
Defined at line 1731 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createMIRProfileLoaderPass (basic_string File, basic_string RemappingFile, FSDiscriminatorPass P, IntrusiveRefCntPtr<vfs::FileSystem> FS)Read Flow Sensitive Profile.
Defined at line 81 of file llvm/lib/CodeGen/MIRSampleProfile.cpp
-
bool isPreISelGenericFloatingPointOpcode (unsigned int Opc)Returns whether opcode
is a pre-isel generic floating-point opcode,
having only floating-point operands.
Defined at line 1750 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
bool mayHaveNonDefUseDependency (const Instruction & I)Returns true if the result or effects of the given instructions
depend values not reachable through the def use graph.
* Memory dependence arises for example if the instruction reads from
memory or may produce effects or undefined behaviour. Memory dependent
instructions generally cannot be reorderd with respect to other memory
dependent instructions.
* Control dependence arises for example if the instruction may fault
if lifted above a throwing call or infinite loop.
Defined at line 7344 of file llvm/lib/Analysis/ValueTracking.cpp
-
ModulePass * createDebugifyMachineModulePass ()Creates MIR Debugify pass.
Defined at line 208 of file llvm/lib/CodeGen/MachineDebugify.cpp
-
void SplitBlockAndInsertForEachLane (Value * End, int InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)Utility function for performing a given action on each lane of a vector
with
effective length. EVL is assumed > 0. To simplify porting legacy
code, this defaults to unrolling the implied loop for non-scalable element
counts, but this is not considered to be part of the contract of this
routine, and is expected to change in the future. The callback takes as
arguments an IRBuilder whose insert point is correctly set for instantiating
the given index, and a value which is (at runtime) the index to access. This
index *may* be a constant.
Defined at line of file
-
void SplitBlockAndInsertForEachLane (Value * End, ilist_iterator_w_bits InsertBefore, std::function<void (IRBuilderBase &, Value *)> Func)Utility function for performing a given action on each lane of a vector
with
effective length. EVL is assumed > 0. To simplify porting legacy
code, this defaults to unrolling the implied loop for non-scalable element
counts, but this is not considered to be part of the contract of this
routine, and is expected to change in the future. The callback takes as
arguments an IRBuilder whose insert point is correctly set for instantiating
the given index, and a value which is (at runtime) the index to access. This
index *may* be a constant.
Defined at line 1751 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
bool isAssumeLikeIntrinsic (const Instruction * I)Is this an intrinsic that cannot be speculated but also cannot trap?
Defined at line 648 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool canCreateUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata)Returns true if
can create undef or poison from non-undef
&
non-poison operands.
controls whether poison
producing flags and metadata on the instruction are considered. This can be
used to see if the instruction could still introduce undef or poison even
without poison generating flags and metadata which might be on the
instruction.
Defined at line 2008 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ModulePass * createStripDebugMachineModulePass (bool OnlyDebugified)Creates MIR Strip Debug pass.
Defined at line 106 of file llvm/lib/CodeGen/MachineStripDebug.cpp
-
void appendLoopsToWorklist (LoopInfo & , SmallPriorityWorklist<Loop *, 4> & )Utility that implements appending of loops onto a worklist given LoopInfo.
Calls the templated utility taking a Range of loops, handing it the Loops
in LoopInfo, iterated in reverse. This is because the loops are stored in
RPO w.r.t. the control flow graph in LoopInfo. For the purpose of unrolling,
loop deletion, and LICM, we largely want to work forward across the CFG so
that we visit defs before uses and can propagate simplifications from one
loop nest into the next. Calls appendReversedLoopsToWorklist with the
already reversed loops in LI.
FIXME: Consider changing the order in LoopInfo.
Defined at line 1966 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
ModulePass * createCheckDebugMachineModulePass ()Creates MIR Check Debug pass.
Defined at line 126 of file llvm/lib/CodeGen/MachineCheckDebugify.cpp
-
bool canCreatePoison (Register Reg, const MachineRegisterInfo & MRI, bool ConsiderFlagsAndMetadata)Returns true if
can create poison from non-poison operands.
Defined at line of file
-
raw_fd_ostream & outs ()This returns a reference to a raw_fd_ostream for standard output. Use it
like: outs()
<
<
"foo"
<
<
"bar";
Defined at line 890 of file llvm/lib/Support/raw_ostream.cpp
-
BranchInst * GetIfCondition (BasicBlock * BB, BasicBlock *& IfTrue, BasicBlock *& IfFalse)Check whether BB is the merge point of a if-region.
If so, return the branch instruction that determines which entry into
BB will be taken. Also, return by references the block that will be
entered from if the condition is true, and the block that will be
entered if the condition is false.
This does no checking to see if the true/false blocks have large or unsavory
instructions in them.
Defined at line 1772 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
Loop * cloneLoop (Loop * L, Loop * PL, ValueToValueMapTy & VM, LoopInfo * LI, LPPassManager * LPM)Recursively clone the specified loop and all of its children,
mapping the blocks with the specified map.
Defined at line 1971 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
Loop * cloneLoop (Loop * L, Loop * PL, int & VM, LoopInfo * LI, LPPassManager * LPM)Recursively clone the specified loop and all of its children,
mapping the blocks with the specified map.
Defined at line of file
-
bool isValidAssumeForContext (const Instruction * I, const Instruction * CxtI, const DominatorTree * DT, bool AllowEphemerals)Return true if it is valid to use the assumptions provided by an
assume intrinsic, I, at the point in the control-flow identified by the
context instruction, CxtI. By default, ephemeral values of the assumption
are treated as an invalid context, to prevent the assumption from being used
to optimize away its argument. If the caller can ensure that this won't
happen, it can call with AllowEphemerals set to true to get more valid
assumptions.
Defined at line 655 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isGuaranteedNotToBeUndefOrPoison (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)Returns true if
cannot be poison and undef.
Defined at line 2020 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createRegAllocScoringPass ()When learning an eviction policy, extract score(reward) information,
otherwise this does nothing
Defined at line 125 of file llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp
-
Value * addRuntimeChecks (Instruction * Loc, Loop * TheLoop, const SmallVectorImpl<RuntimePointerCheck> & PointerChecks, SCEVExpander & Expander, bool HoistRuntimeChecks)Add code that checks at runtime if the accessed arrays in
overlap. Returns the final comparator value or NULL if no check is needed.
Defined at line 2094 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
raw_fd_ostream & errs ()This returns a reference to a raw_ostream for standard error.
Use it like: errs()
<
<
"foo"
<
<
"bar";
By default, the stream is tied to stdout to ensure stdout is flushed before
stderr is written, to ensure the error messages are written in their
expected place.
Defined at line 904 of file llvm/lib/Support/raw_ostream.cpp
-
bool isGuaranteedNotToBePoison (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)Returns true if
cannot be poison, but may be undef.
Defined at line 2027 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
ModulePass * createJMCInstrumenterPass ()JMC instrument pass.
Defined at line 67 of file llvm/lib/CodeGen/JMCInstrumenter.cpp
-
bool willNotFreeBetween (const Instruction * Assume, const Instruction * CtxI)Returns true, if no instruction between
and
may free
memory and the function is marked as NoSync. The latter ensures the current
function cannot arrange for another thread to free on its behalf.
Defined at line 705 of file llvm/lib/Analysis/ValueTracking.cpp
-
void printLoop (const Loop & L, raw_ostream & OS, const std::string & Banner)Function to print a loop's contents as LLVM's text IR assembly.
Defined at line 989 of file llvm/lib/Analysis/LoopInfo.cpp
-
raw_ostream & nulls ()This returns a reference to a raw_ostream which simply discards output.
Defined at line 916 of file llvm/lib/Support/raw_ostream.cpp
-
Value * addDiffRuntimeChecks (Instruction * Loc, ArrayRef<PointerDiffInfo> Checks, SCEVExpander & Expander, function_ref<Value *(IRBuilderBase &, unsigned int)> GetVF, unsigned int IC)Defined at line 2153 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
FunctionPass * createSelectOptimizePass ()This pass converts conditional moves to conditional jumps when profitable.
Defined at line 353 of file llvm/lib/CodeGen/SelectOptimize.cpp
-
bool isGuaranteedNotToBeUndef (Register Reg, const MachineRegisterInfo & MRI, unsigned int Depth)Returns true if
cannot be undef, but may be poison.
Defined at line 2034 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createCallBrPass ()Defined at line 103 of file llvm/lib/CodeGen/CallBrPrepare.cpp
-
MDNode * findOptionMDForLoopID (MDNode * LoopID, StringRef Name)Find and return the loop attribute node for the attribute
in
Return nullptr if there is no such attribute.
Defined at line 1041 of file llvm/lib/Analysis/LoopInfo.cpp
-
ModulePass * createWindowsSecureHotPatchingPass ()Creates Windows Secure Hot Patch pass.
Defined at line 203 of file llvm/lib/CodeGen/WindowsSecureHotPatching.cpp
-
ConstantRange getConstantRangeFromMetadata (const MDNode & RangeMD)Parse out a conservative ConstantRange from !range metadata.
E.g. if RangeMD is !{i32 0, i32 10, i32 15, i32 20} then return [0, 20).
Defined at line 2294 of file llvm/lib/IR/ConstantRange.cpp
-
Type * getTypeForLLT (LLT Ty, LLVMContext & C)Get the type back from LLT. It won't be 100 percent accurate but returns an
estimate of the type.
Defined at line 2041 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
FunctionPass * createKCFIPass ()Lowers KCFI operand bundles for indirect calls.
Defined at line 61 of file llvm/lib/CodeGen/KCFI.cpp
-
MDNode * findOptionMDForLoop (const Loop * TheLoop, StringRef Name)Find string metadata for a loop.
Returns the MDNode where the first operand is the metadata's name. The
following operands are the metadata's values. If no metadata with
is
found, return nullptr.
Defined at line 1067 of file llvm/lib/Analysis/LoopInfo.cpp
-
bool isAssertMI (const MachineInstr & MI)Returns true if the instruction
is one of the assert
instructions.
Defined at line 2048 of file llvm/lib/CodeGen/GlobalISel/Utils.cpp
-
OverflowResult computeOverflowForUnsignedMul (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ, bool IsNSW)Defined at line 7388 of file llvm/lib/Analysis/ValueTracking.cpp
-
optional getOptionalBoolLoopAttribute (const Loop * TheLoop, StringRef Name)Defined at line 1091 of file llvm/lib/Analysis/LoopInfo.cpp
-
bool SplitIndirectBrCriticalEdges (Function & F, bool IgnoreBlocksWithoutPHI, BranchProbabilityInfo * BPI, BlockFrequencyInfo * BFI)Split critical edges where the source of the edge is an indirectbr
instruction. This isn't always possible, but we can handle some easy cases.
This is useful because MI is unable to split such critical edges,
which means it will not be able to sink instructions along those edges.
This is especially painful for indirect branches with many successors, where
we end up having to prepare all outgoing values in the origin block.
Our normal algorithm for splitting critical edges requires us to update
the outgoing edges of the edge origin block, but for an indirectbr this
is hard, since it would require finding and updating the block addresses
the indirect branch uses. But if a block only has a single indirectbr
predecessor, with the others being regular branches, we can do it in a
different way.
Say we have A -> D, B -> D, I -> D where only I -> D is an indirectbr.
We can split D into D0 and D1, where D0 contains only the PHIs from D,
and D1 is the D block body. We can then duplicate D0 as D0A and D0B, and
create the following structure:
A -> D0A, B -> D0A, I -> D0B, D0A -> D1, D0B -> D1
If BPI and BFI aren't non-null, BPI/BFI will be updated accordingly.
When `IgnoreBlocksWithoutPHI` is set to `true` critical edges leading to a
block without phi-instructions will not be split.
Defined at line 349 of file llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
-
OverflowResult computeOverflowForSignedMul (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)Defined at line 7404 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool getBooleanLoopAttribute (const Loop * TheLoop, StringRef Name)Returns true if Name is applied to TheLoop and enabled.
Defined at line 1109 of file llvm/lib/Analysis/LoopInfo.cpp
-
OverflowResult computeOverflowForUnsignedAdd (const WithCache<const Value *> & LHS, const WithCache<const Value *> & RHS, const SimplifyQuery & SQ)Defined at line 7443 of file llvm/lib/Analysis/ValueTracking.cpp
-
template <typename R, typename UnaryPredicate>bool all_of (R && range, UnaryPredicate P)Forward declarations required by zip_shortest/zip_equal/zip_first/zip_longest
Defined at line 1737 of file llvm/include/llvm/ADT/STLExtras.h
-
std::optional<int> getOptionalIntLoopAttribute (const Loop * TheLoop, StringRef Name)Find named metadata for a loop with an integer value.
Defined at line 1113 of file llvm/lib/Analysis/LoopInfo.cpp
-
void InvertBranch (BranchInst * PBI, IRBuilderBase & Builder)Utility function for inverting branch condition and for swapping its
successors
Defined at line 1864 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
OverflowResult computeOverflowForSignedAdd (const WithCache<const Value *> & LHS, const WithCache<const Value *> & RHS, const SimplifyQuery & SQ)Defined at line 8046 of file llvm/lib/Analysis/ValueTracking.cpp
-
template <typename R, typename UnaryPredicate>bool any_of (R && range, UnaryPredicate P)Provide wrappers to std::any_of which take ranges instead of having to pass
begin/end explicitly.
Defined at line 1744 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename T>bool all_equal (std::initializer_list<T> Values)Returns true if all Values in the initializer lists are equal or the list
is empty.
Defined at line 2156 of file llvm/include/llvm/ADT/STLExtras.h
-
bool hasOnlySimpleTerminator (const Function & F)Check whether the function only has simple terminator:
br/brcond/unreachable/ret
Defined at line 1878 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
int getIntLoopAttribute (const Loop * TheLoop, StringRef Name, int Default)Find named metadata for a loop with an integer value. Return
if
not set.
Defined at line 1127 of file llvm/lib/Analysis/LoopInfo.cpp
-
OverflowResult computeOverflowForSignedAdd (const AddOperator * Add, const SimplifyQuery & SQ)This version also leverages the sign bit of Add if known.
Defined at line 8040 of file llvm/lib/Analysis/ValueTracking.cpp
-
template <typename R>size_t range_size (R && Range)Returns the size of the
i.e., the number of elements. This
implementation takes inspiration from `std::ranges::size` from C++20 and
delegates the size check to `adl_size` or `std::distance`, in this order of
preference. Unlike `llvm::size`, this function does *not* guarantee O(1)
running time, and is intended to be used in generic code that does not know
the exact range type.
Defined at line 1692 of file llvm/include/llvm/ADT/STLExtras.h
-
OverflowResult computeOverflowForUnsignedSub (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)Defined at line 7512 of file llvm/lib/Analysis/ValueTracking.cpp
-
Printable printBasicBlock (const BasicBlock * BB)Print BasicBlock
as an operand or print "<nullptr>" if
is a
nullptr.
Defined at line 1888 of file llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
-
ModulePass * createDXILResourceWrapperPassPass ()Defined at line 1176 of file llvm/lib/Analysis/DXILResource.cpp
-
OverflowResult computeOverflowForSignedSub (const Value * LHS, const Value * RHS, const SimplifyQuery & SQ)Defined at line 7545 of file llvm/lib/Analysis/ValueTracking.cpp
-
std::optional<const MDOperand *> findStringMetadataForLoop (const Loop * TheLoop, StringRef Name)Find string metadata for loop
If it has a value (e.g. {"llvm.distribute", 1} return the value as an
operand or null otherwise. If the string metadata is not found return
Optional's not-a-value.
Defined at line 1076 of file llvm/lib/Analysis/LoopInfo.cpp
-
std::optional<IVConditionInfo> hasPartialIVCondition (const Loop & L, unsigned int MSSAThreshold, const MemorySSA & MSSA, AAResults & AA)Check if the loop header has a conditional branch that is not
loop-invariant, because it involves load instructions. If all paths from
either the true or false successor to the header or loop exists do not
modify the memory feeding the condition, perform 'partial unswitching'. That
is, duplicate the instructions feeding the condition in the pre-header. Then
unswitch on the duplicated condition. The condition is now known in the
unswitched version for the 'invariant' path through the original loop.
If the branch condition of the header is partially invariant, return a pair
containing the instructions to duplicate and a boolean Constant to update
the condition in the loops created for the true or false successors.
Defined at line 2199 of file llvm/lib/Transforms/Utils/LoopUtils.cpp
-
CallBase * getLoopConvergenceHeart (const Loop * TheLoop)Find the convergence heart of the loop.
Defined at line 1132 of file llvm/lib/Analysis/LoopInfo.cpp
-
bool isOverflowIntrinsicNoWrap (const WithOverflowInst * WO, const DominatorTree & DT)Returns true if the arithmetic part of the
's result is
used only along the paths control dependent on the computation
not overflowing,
being an
<op
>.with.overflow intrinsic.
Defined at line 7573 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool hasMustProgress (const Loop * L)Look for the loop attribute that requires progress within the loop.
Note: Most consumers probably want "isMustProgress" which checks
the containing function attribute too.
Defined at line 1158 of file llvm/lib/Analysis/LoopInfo.cpp
-
template <class Tr>raw_ostream & operator<< (raw_ostream & OS, const RegionNodeBase<Tr> & Node)Print a RegionNode.
Defined at line 1012 of file llvm/include/llvm/Analysis/RegionInfo.h
-
ConstantRange getVScaleRange (const Function * F, unsigned int BitWidth)Determine the possible constant range of vscale with the given bit width,
based on the vscale_range function attribute.
Defined at line 1279 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isMustProgress (const Loop * L)Return true if this loop can be assumed to make progress. (i.e. can't
be infinite without side effects without also being undefined)
Defined at line 1162 of file llvm/lib/Analysis/LoopInfo.cpp
-
ConstantRange computeConstantRange (const Value * V, bool ForSigned, bool UseInstrInfo, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)Determine the possible constant range of an integer or vector of integer
value. This is intended as a cheap, non-recursive check.
Defined at line 10369 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isFinite (const Loop * L)Return true if this loop can be assumed to run for a finite number of
iterations.
Defined at line 1152 of file llvm/lib/Analysis/LoopInfo.cpp
-
ConstantRange computeConstantRangeIncludingKnownBits (const WithCache<const Value *> & V, bool ForSigned, const SimplifyQuery & SQ)Combine constant ranges from computeConstantRange() and computeKnownBits().
Defined at line 7376 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isValidAsAccessGroup (MDNode * AccGroup)Return whether an MDNode might represent an access group.
Access group metadata nodes have to be distinct and empty. Being
always-empty ensures that it never needs to be changed (which -- because
MDNodes are designed immutable -- would require creating a new MDNode). Note
that this is not a sufficient condition: not every distinct and empty NDNode
is representing an access group.
Defined at line 1166 of file llvm/lib/Analysis/LoopInfo.cpp
-
bool isGuaranteedToTransferExecutionToSuccessor (const Instruction * I)Return true if this function can prove that the instruction I will
always transfer execution to one of its successors (including the next
instruction that follows within a basic block). E.g. this is not
guaranteed for function calls that could loop infinitely.
In other words, this function returns false for instructions that may
transfer execution or fail to transfer execution in a way that is not
captured in the CFG nor in the sequence of instructions within a basic
block.
Undefined behavior is assumed not to happen, so e.g. division is
guaranteed to transfer execution to the following instruction even
though division by zero might cause undefined behavior.
Defined at line 8053 of file llvm/lib/Analysis/ValueTracking.cpp
-
llvm::MDNode * makePostTransformationMetadata (llvm::LLVMContext & Context, MDNode * OrigLoopID, llvm::ArrayRef<llvm::StringRef> RemovePrefixes, llvm::ArrayRef<llvm::MDNode *> AddAttrs)Create a new LoopID after the loop has been transformed.
This can be used when no follow-up loop attributes are defined
(llvm::makeFollowupLoopID returning None) to stop transformations to be
applied again.
Parameters
Context The LLVMContext in which to create the new LoopID.OrigLoopID The original LoopID; can be nullptr if the original loop has no LoopID.RemovePrefixes Remove all loop attributes that have these prefixes. Use to remove metadata of the transformation that has been applied.AddAttrs Add these loop attributes to the new LoopID.Returns
A new LoopID that can be applied using Loop::setLoopID().
Defined at line 1170 of file llvm/lib/Analysis/LoopInfo.cpp
-
bool isGuaranteedToTransferExecutionToSuccessor (const BasicBlock * BB)Returns true if this block does not contain a potential implicit exit.
This is equivelent to saying that all instructions within the basic block
are guaranteed to transfer execution to their successor within the basic
block. This has the same assumptions w.r.t. undefined behavior as the
instruction variant of this function.
Defined at line 8085 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isGuaranteedToTransferExecutionToSuccessor (int Begin, int End, unsigned int ScanLimit)Return true if every instruction in the range (Begin, End) is
guaranteed to transfer execution to its static successor.
bounds the search to avoid scanning huge blocks.
Defined at line of file
-
bool isGuaranteedToTransferExecutionToSuccessor (ilist_iterator_w_bits Begin, ilist_iterator_w_bits End, unsigned int ScanLimit)Return true if every instruction in the range (Begin, End) is
guaranteed to transfer execution to its static successor.
bounds the search to avoid scanning huge blocks.
Defined at line 8094 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isGuaranteedToTransferExecutionToSuccessor (int Range, unsigned int ScanLimit)Same as previous, but with range expressed via iterator_range.
Defined at line of file
-
bool isGuaranteedToTransferExecutionToSuccessor (iterator_range Range, unsigned int ScanLimit)Same as previous, but with range expressed via iterator_range.
Defined at line 8101 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isGuaranteedToExecuteForEveryIteration (const Instruction * I, const Loop * L)Return true if this function can prove that the instruction I
is executed for every iteration of the loop L.
Note that this currently only considers the loop header.
Defined at line 8113 of file llvm/lib/Analysis/ValueTracking.cpp
-
ModulePass * createDXILResourceBindingWrapperPassPass ()Defined at line 1206 of file llvm/lib/Analysis/DXILResource.cpp
-
bool propagatesPoison (const Use & PoisonOp)Return true if
user yields poison or raises UB if its
operand
is poison.
If
is a vector or an aggregate and the operation's result is a
single value, any poison element in /p PoisonOp should make the result
poison or raise UB.
To filter out operands that raise UB on poison, you can use
getGuaranteedNonPoisonOp.
Defined at line 8205 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool intrinsicPropagatesPoison (Intrinsic::ID IID)Return whether this intrinsic propagates poison for all operands.
Defined at line 8128 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool mustTriggerUB (const Instruction * I, const SmallPtrSetImpl<const Value *> & KnownPoison)Return true if the given instruction must trigger undefined behavior
when I is executed with any operands which appear in KnownPoison holding
a poison value at the point of execution.
Defined at line 8313 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool programUndefinedIfUndefOrPoison (const Instruction * Inst)Return true if this function can prove that if Inst is executed
and yields a poison value or undef bits, then that will trigger
undefined behavior.
Note that this currently only considers the basic block that is
the parent of Inst.
Defined at line 8413 of file llvm/lib/Analysis/ValueTracking.cpp
-
void report_fatal_error (Error Err, bool gen_crash_diag)Defined at line 167 of file llvm/lib/Support/Error.cpp
-
bool programUndefinedIfPoison (const Instruction * Inst)Defined at line 8417 of file llvm/lib/Analysis/ValueTracking.cpp
-
void reportFatalInternalError (Error Err)Report a fatal error that indicates a bug in LLVM.
See ErrorHandling.h for details.
Defined at line 177 of file llvm/lib/Support/Error.cpp
-
void reportFatalUsageError (Error Err)Report a fatal error that does not indicate a bug in LLVM.
See ErrorHandling.h for details.
Defined at line 180 of file llvm/lib/Support/Error.cpp
-
ilist_iterator_w_bits skipDebugIntrinsics (ilist_iterator_w_bits It)Advance
while it points to a debug instruction and return the result.
This assumes that
is not at the end of a block.
Defined at line 682 of file llvm/lib/IR/BasicBlock.cpp
-
int skipDebugIntrinsics (int It)Advance
while it points to a debug instruction and return the result.
This assumes that
is not at the end of a block.
Defined at line of file
-
bool canCreateUndefOrPoison (const Operator * Op, bool ConsiderFlagsAndMetadata)canCreateUndefOrPoison returns true if Op can create undef or poison from
non-undef
&
non-poison operands.
For vectors, canCreateUndefOrPoison returns true if there is potential
poison or undef in any element of the result when vectors without
undef/poison poison are given as operands.
For example, given `Op = shl
<
2 x i32> %x,
<
0, 32>`, this function returns
true. If Op raises immediate UB but never creates poison or undef
(e.g. sdiv I, 0), canCreatePoison returns false.
controls whether poison producing flags and
metadata on the instruction are considered. This can be used to see if the
instruction could still introduce undef or poison even without poison
generating flags and metadata which might be on the instruction.
(i.e. could the result of Op->dropPoisonGeneratingFlags() still create
poison or undef)
canCreatePoison returns true if Op can create poison from non-poison
operands.
Defined at line 7748 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool canCreatePoison (const Operator * Op, bool ConsiderFlagsAndMetadata)Defined at line 7754 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool impliesPoison (const Value * ValAssumedPoison, const Value * V)Return true if V is poison given that ValAssumedPoison is already poison.
For example, if ValAssumedPoison is `icmp X, 10` and V is `icmp X, 5`,
impliesPoison returns true.
Defined at line 7808 of file llvm/lib/Analysis/ValueTracking.cpp
-
hash_code hash_value (const MachineOperand & MO)MachineOperand hash_value overload.
Note that this includes the same information in the hash that
isIdenticalTo uses for comparison. It is thus suited for use in hash
tables which use that function for equality comparisons only. This must
stay exactly in sync with isIdenticalTo above.
Defined at line 404 of file llvm/lib/CodeGen/MachineOperand.cpp
-
bool isGuaranteedNotToBeUndefOrPoison (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)Return true if this function can prove that V does not have undef bits
and is never poison. If V is an aggregate value or vector, check whether
all elements (except padding) are not undef or poison.
Note that this is different from canCreateUndefOrPoison because the
function assumes Op's operands are not poison/undef.
If CtxI and DT are specified this method performs flow-sensitive analysis
and returns true if it is guaranteed to be never undef or poison
immediately before the CtxI.
Defined at line 7974 of file llvm/lib/Analysis/ValueTracking.cpp
-
hash_code hash_value (const RegisterBankInfo::PartialMapping & PartMapping)Hashing function for PartialMapping.
It is required for the hashing of ValueMapping.
Defined at line 273 of file llvm/lib/CodeGen/RegisterBankInfo.cpp
-
bool isGuaranteedNotToBePoison (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)Returns true if V cannot be poison, but may be undef.
Defined at line 7982 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isGuaranteedNotToBeUndef (const Value * V, AssumptionCache * AC, const Instruction * CtxI, const DominatorTree * DT, unsigned int Depth)Returns true if V cannot be undef, but may be poison.
Defined at line 7989 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool mustExecuteUBIfPoisonOnPathTo (Instruction * Root, Instruction * OnPathTo, DominatorTree * DT)Return true if undefined behavior would provable be executed on the path to
OnPathTo if Root produced a posion result. Note that this doesn't say
anything about whether OnPathTo is actually executed or whether Root is
actually poison. This can be used to assess whether a new use of Root can
be added at a location which is control equivalent with OnPathTo (such as
immediately before it) without introducing UB which didn't previously
exist. Note that a false result conveys no information.
Defined at line 8003 of file llvm/lib/Analysis/ValueTracking.cpp
-
std::optional<std::pair<CmpPredicate, Constant *>> getFlippedStrictnessPredicateAndConstant (CmpPredicate Pred, Constant * C)Convert an integer comparison with a constant RHS into an equivalent
form with the strictness flipped predicate. Return the new predicate and
corresponding constant RHS if possible. Otherwise return std::nullopt.
E.g., (icmp sgt X, 0) -> (icmp sle X, 1).
Defined at line 8821 of file llvm/lib/Analysis/ValueTracking.cpp
-
Error writeToOutput (StringRef OutputFileName, std::function<Error (raw_ostream &)> Write)This helper creates an output stream and then passes it to
The stream created is based on the specified
llvm::outs for "-", raw_null_ostream for "/dev/null", and raw_fd_ostream
for other names. For raw_fd_ostream instances, the stream writes to
a temporary file. The final output file is atomically replaced with the
temporary file after the
function is finished.
Defined at line 1010 of file llvm/lib/Support/raw_ostream.cpp
-
raw_ostream & operator<< (raw_ostream & OS, nullopt_t )Defined at line 11 of file llvm/lib/Support/Optional.cpp
-
optional StripTemplateParameters (StringRef Name)If `Name` is the name of a templated function that includes template
parameters, returns a substring of `Name` containing no template
parameters.
E.g.: StripTemplateParameters("foo<int>") = "foo".
Defined at line 1125 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
-
const SCEV * replaceSymbolicStrideSCEV (PredicatedScalarEvolution & PSE, const int & PtrToStride, Value * Ptr)Return the SCEV corresponding to a pointer with the symbolic stride
replaced with constant one, assuming the SCEV predicate associated with
is true.
If necessary this method will version the stride of the pointer according
to
and therefore add further predicates to
provides the mapping between the pointer value and its
stride as collected by LoopVectorizationLegality::collectStridedAccess.
Defined at line 155 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
const SCEV * replaceSymbolicStrideSCEV (PredicatedScalarEvolution & PSE, const DenseMap<Value *, const SCEV *> & PtrToStride, Value * Ptr)Return the SCEV corresponding to a pointer with the symbolic stride
replaced with constant one, assuming the SCEV predicate associated with
is true.
If necessary this method will version the stride of the pointer according
to
and therefore add further predicates to
provides the mapping between the pointer value and its
stride as collected by LoopVectorizationLegality::collectStridedAccess.
Defined at line of file
-
std::optional<ObjCSelectorNames> getObjCNamesIfSelector (StringRef Name)If `Name` is the AT_name of a DIE which refers to an Objective-C selector,
returns an instance of ObjCSelectorNames. The Selector and ClassName fields
are guaranteed to be non-empty in the result.
Defined at line 1093 of file llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp
-
SelectPatternResult matchSelectPattern (Value * V, Value *& LHS, Value *& RHS, Instruction::CastOps * CastOp, unsigned int Depth)Pattern match integer [SU]MIN, [SU]MAX and ABS idioms, returning the kind
and providing the out parameter results if we successfully match.
For ABS/NABS, LHS will be set to the input to the abs idiom. RHS will be
the negation instruction from the idiom.
If CastOp is not nullptr, also match MIN/MAX idioms where the type does
not match that of the original select. If this is the case, the cast
operation (one of Trunc,SExt,Zext) that must be done to transform the
type of LHS and RHS into the type of V is returned in CastOp.
For example:
%1 = icmp slt i32 %a, i32 4
%2 = sext i32 %a to i64
%3 = select i1 %1, i64 %2, i64 4
-> LHS = %a, RHS = i32 4, *CastOp = Instruction::SExt
Defined at line 9205 of file llvm/lib/Analysis/ValueTracking.cpp
-
optional getPtrStride (PredicatedScalarEvolution & PSE, Type * AccessTy, Value * Ptr, const Loop * Lp, const DominatorTree & DT, const int & StridesMap, bool Assume, bool ShouldCheckWrap)Check whether the access through
has a constant stride.
Defined at line 1622 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
optional getPtrStride (PredicatedScalarEvolution & PSE, Type * AccessTy, Value * Ptr, const Loop * Lp, const DominatorTree & DT, const DenseMap<Value *, const SCEV *> & StridesMap, bool Assume, bool ShouldCheckWrap)If the pointer has a constant stride return it in units of the access type
size. If the pointer is loop-invariant, return 0. Otherwise return
std::nullopt.
Ensure that it does not wrap in the address space, assuming the predicate
associated with
is true.
If necessary this method will version the stride of the pointer according
to
and therefore add further predicates to
The
parameter indicates if we are allowed to make additional
run-time assumptions.
Note that the analysis results are defined if-and-only-if the original
memory access was defined. If that access was dead, or UB, then the
result of this function is undefined.
Defined at line of file
-
SelectPatternResult matchDecomposedSelectPattern (CmpInst * CmpI, Value * TrueVal, Value * FalseVal, Value *& LHS, Value *& RHS, FastMathFlags FMF, Instruction::CastOps * CastOp, unsigned int Depth)Determine the pattern that a select with the given compare as its
predicate and given values as its true/false operands would match.
Defined at line 9226 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isNoAliasCall (const Value * V)Return true if this pointer is returned by a noalias function.
Defined at line 838 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
optional getPointersDiff (Type * ElemTyA, Value * PtrA, Type * ElemTyB, Value * PtrB, const DataLayout & DL, ScalarEvolution & SE, bool StrictCheck, bool CheckType)Returns the distance between the pointers
and
iff they are
compatible and it is possible to calculate the distance between them. This
is a simple API that does not depend on the analysis pass.
Parameters
StrictCheck Ensure that the calculated distance matches the type-based one after all the bitcasts removal in the provided pointers.Defined at line 1657 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
SelectPatternResult getSelectPattern (Predicate Pred, SelectPatternNaNBehavior NaNBehavior, bool Ordered)Determine the pattern for predicate `X Pred Y ? X : Y`.
Defined at line 8790 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isIdentifiedObject (const Value * V)Return true if this pointer refers to a distinct and identifiable object.
This returns true for:
Global Variables and Functions (but not Global Aliases)
Allocas
ByVal and NoAlias Arguments
NoAlias returns (e.g. calls to malloc)
Defined at line 850 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
Predicate getMinMaxPred (SelectPatternFlavor SPF, bool Ordered)Return the canonical comparison predicate for the specified
minimum/maximum flavor.
Defined at line 9264 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool sortPtrAccesses (ArrayRef VL, Type * ElemTy, const DataLayout & DL, ScalarEvolution & SE, SmallVectorImpl<unsigned int> & SortedIndices)Attempt to sort the pointers in
and return the sorted indices
in
if reordering is required.
Returns 'true' if sorting is legal, otherwise returns 'false'.
For example, for a given
of memory accesses in program order, a[i+4],
a[i+0], a[i+1] and a[i+7], this function will sort the
and save the
sorted indices in
as a[i+0], a[i+1], a[i+4], a[i+7] and
saves the mask for actual memory accesses in program order in
as
<
1,2,0,3>
Defined at line 1726 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
bool isIdentifiedFunctionLocal (const Value * V)Return true if V is umabigously identified at the function-level.
Different IdentifiedFunctionLocals can't alias.
Further, an IdentifiedFunctionLocal can not alias with any function
arguments other than itself, which is not necessarily true for
IdentifiedObjects.
Defined at line 862 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
Intrinsic::ID getMinMaxIntrinsic (SelectPatternFlavor SPF)Convert given `SPF` to equivalent min/max intrinsic.
Caller must ensure `SPF` is an integer min or max pattern.
Defined at line 9276 of file llvm/lib/Analysis/ValueTracking.cpp
-
hash_code hash_value (StringRef S)Compute a hash_code for a StringRef.
Defined at line 610 of file llvm/lib/Support/StringRef.cpp
-
SelectPatternFlavor getInverseMinMaxFlavor (SelectPatternFlavor SPF)Return the inverse minimum/maximum flavor of the specified flavor.
For example, signed minimum is the inverse of signed maximum.
Defined at line 9291 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isConsecutiveAccess (Value * A, Value * B, const DataLayout & DL, ScalarEvolution & SE, bool CheckType)Returns true if the memory operations
and
are consecutive.
Defined at line 1767 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
Intrinsic::ID getInverseMinMaxIntrinsic (Intrinsic::ID MinMaxID)Defined at line 9299 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isBaseOfObject (const Value * V)Return true if we know V to the base address of the corresponding memory
object. This implies that any address less than V must be out of bounds
for the underlying object. Note that just being isIdentifiedObject() is
not enough - For example, a negative offset from a noalias argument or call
can be inbounds w.r.t the actual underlying object.
Defined at line 866 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
APInt getMinMaxLimit (SelectPatternFlavor SPF, unsigned int BitWidth)Return the minimum or maximum constant value for the specified integer
min/max flavor and type.
Defined at line 9319 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isEscapeSource (const Value * V)Returns true if the pointer is one which would have been considered an
escape by isNotCapturedBefore.
Defined at line 874 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const LiveRange::Segment & S)Defined at line 989 of file llvm/lib/CodeGen/LiveInterval.cpp
-
std::pair<Intrinsic::ID, bool> canConvertToMinOrMaxIntrinsic (ArrayRef VL)Check if the values in
are select instructions that can be converted
to a min or max (vector) intrinsic. Returns the intrinsic ID, if such a
conversion is possible, together with a bool indicating whether all select
conditions are only used by the selects. Otherwise return
Intrinsic::not_intrinsic.
Defined at line 9329 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool isNotVisibleOnUnwind (const Value * Object, bool & RequiresNoCaptureBeforeUnwind)Return true if Object memory is not visible after an unwind, in the sense
that program semantics cannot depend on Object containing any particular
value on unwind. If the RequiresNoCaptureBeforeUnwind out parameter is set
to true, then the memory is only not visible if the object has not been
captured prior to the unwind. Otherwise it is not visible even if captured.
Defined at line 913 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
std::pair<const SCEV *, const SCEV *> getStartAndEndForAccess (const Loop * Lp, const SCEV * PtrExpr, Type * AccessTy, const SCEV * BTC, const SCEV * MaxBTC, ScalarEvolution * SE, int * PointerBounds, DominatorTree * DT, AssumptionCache * AC, std::optional<ScalarEvolution::LoopGuards> & LoopGuards)Calculate Start and End points of memory access using exact backedge taken
count
if computable or maximum backedge taken count
otherwise.
Let's assume A is the first access and B is a memory access on N-th loop
iteration. Then B is calculated as:
B = A + Step*N .
Step value may be positive or negative.
N is a calculated back-edge taken count:
N = (TripCount > 0) ? RoundDown(TripCount -1 , VF) : 0
Start and End points are calculated in the following way:
Start = UMIN(A, B) ; End = UMAX(A, B) + SizeOfElt,
where SizeOfElt is the size of single memory access in bytes.
There is no conflict when the intervals are disjoint:
NoConflict = (P2.Start >= P1.End) || (P1.Start >= P2.End)
Defined at line 318 of file llvm/lib/Analysis/LoopAccessAnalysis.cpp
-
pair getStartAndEndForAccess (const Loop * Lp, const SCEV * PtrExpr, Type * AccessTy, const SCEV * BTC, const SCEV * MaxBTC, ScalarEvolution * SE, DenseMap<std::pair<const SCEV *, Type *>, std::pair<const SCEV *, const SCEV *>> * PointerBounds, DominatorTree * DT, AssumptionCache * AC, std::optional<ScalarEvolution::LoopGuards> & LoopGuards)Calculate Start and End points of memory access using exact backedge taken
count
if computable or maximum backedge taken count
otherwise.
Let's assume A is the first access and B is a memory access on N-th loop
iteration. Then B is calculated as:
B = A + Step*N .
Step value may be positive or negative.
N is a calculated back-edge taken count:
N = (TripCount > 0) ? RoundDown(TripCount -1 , VF) : 0
Start and End points are calculated in the following way:
Start = UMIN(A, B) ; End = UMAX(A, B) + SizeOfElt,
where SizeOfElt is the size of single memory access in bytes.
There is no conflict when the intervals are disjoint:
NoConflict = (P2.Start >= P1.End) || (P1.Start >= P2.End)
Defined at line of file
-
EVT FromVT (int )Defined at line of file
-
bool isWritableObject (const Value * Object, bool & ExplicitlyDereferenceableOnly)Return true if the Object is writable, in the sense that any location based
on this pointer that can be loaded can also be stored to without trapping.
Additionally, at the point Object is declared, stores can be introduced
without data races. At later points, this is only the case if the pointer
can not escape to a different thread.
If ExplicitlyDereferenceableOnly is set to true, this property only holds
for the part of Object that is explicitly marked as dereferenceable, e.g.
using the dereferenceable(N) attribute. It does not necessarily hold for
parts that are only known to be dereferenceable due to the presence of
loads.
Defined at line 938 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
bool matchSimpleRecurrence (const PHINode * P, BinaryOperator *& BO, Value *& Start, Value *& Step)Attempt to match a simple first order recurrence cycle of the form:
%iv = phi Ty [%Start, %Entry], [%Inc, %backedge]
%inc = binop %iv, %step
OR
%iv = phi Ty [%Start, %Entry], [%Inc, %backedge]
%inc = binop %step, %iv
A first order recurrence is a formula with the form: X_n = f(X_(n-1))
A couple of notes on subtleties in that definition:
* The Step does not have to be loop invariant. In math terms, it can
be a free variable. We allow recurrences with both constant and
variable coefficients. Callers may wish to filter cases where Step
does not dominate P.
* For non-commutative operators, we will match both forms. This
results in some odd recurrence structures. Callers may wish to filter
out recurrences where the phi is not the LHS of the returned operator.
* Because of the structure matched, the caller can assume as a post
condition of the match the presence of a Loop with P's parent as it's
header *except* in unreachable code. (Dominance decays in unreachable
code.)
NOTE: This is intentional simple. If you want the ability to analyze
non-trivial loop conditons, see ScalarEvolution instead.
Defined at line 9397 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool matchSimpleRecurrence (const BinaryOperator * I, PHINode *& P, Value *& Start, Value *& Step)Analogous to the above, but starting from the binary operator
Defined at line 9408 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool matchSimpleBinaryIntrinsicRecurrence (const IntrinsicInst * I, PHINode *& P, Value *& Init, Value *& OtherOp)Attempt to match a simple value-accumulating recurrence of the form:
%llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge]
%llvm.intrinsic = call Ty
.intrinsic(%OtherOp, %llvm.intrinsic.acc)
OR
%llvm.intrinsic.acc = phi Ty [%Init, %Entry], [%llvm.intrinsic, %backedge]
%llvm.intrinsic = call Ty
.intrinsic(%llvm.intrinsic.acc, %OtherOp)
The recurrence relation is of kind:
X_0 = %a (initial value),
X_i = call
.binary.intrinsic(X_i-1, %b)
Where %b is not required to be loop-invariant.
Defined at line 9417 of file llvm/lib/Analysis/ValueTracking.cpp
-
optional isImpliedCondition (const Value * LHS, const Value * RHS, const DataLayout & DL, bool LHSIsTrue, unsigned int Depth)Return true if RHS is known to be implied true by LHS. Return false if
RHS is known to be implied false by LHS. Otherwise, return std::nullopt if
no implication can be made. A
&
B must be i1 (boolean) values or a vector of
such values. Note that the truth table for implication is the same as
<
=u on
i1 values (but not
<
=s!). The truth table for both is:
| T | F (B)
T | T | F
F | T | T
(A)
Defined at line 9845 of file llvm/lib/Analysis/ValueTracking.cpp
-
optional isImpliedCondition (const Value * LHS, CmpPredicate RHSPred, const Value * RHSOp0, const Value * RHSOp1, const DataLayout & DL, bool LHSIsTrue, unsigned int Depth)Defined at line 9792 of file llvm/lib/Analysis/ValueTracking.cpp
-
raw_ostream & operator<< (raw_ostream & OS, Predicate Pred)Defined at line 3658 of file llvm/lib/IR/Instructions.cpp
-
optional isImpliedByDomCondition (const Value * Cond, const Instruction * ContextI, const DataLayout & DL)Return the boolean condition value in the context of the given instruction
if it is known based on dominating conditions.
Defined at line 9945 of file llvm/lib/Analysis/ValueTracking.cpp
-
optional isImpliedByDomCondition (CmpPredicate Pred, const Value * LHS, const Value * RHS, const Instruction * ContextI, const DataLayout & DL)Defined at line 9955 of file llvm/lib/Analysis/ValueTracking.cpp
-
void findValuesAffectedByCondition (Value * Cond, bool IsAssume, function_ref<void (Value *)> InsertAffected)Call
on all Values whose known bits / value may be
affected by the condition
Used by AssumptionCache and
DomConditionCache.
Defined at line 10467 of file llvm/lib/Analysis/ValueTracking.cpp
-
Value * stripNullTest (Value * V)Returns the inner value X if the expression has the form f(X)
where f(X) == 0 if and only if X == 0, otherwise returns nullptr.
Defined at line 10613 of file llvm/lib/Analysis/ValueTracking.cpp
-
const Value * stripNullTest (const Value * V)Defined at line 10594 of file llvm/lib/Analysis/ValueTracking.cpp
-
bool collectPossibleValues (const Value * V, SmallPtrSetImpl<const Constant *> & Constants, unsigned int MaxCount, bool AllowUndefOrPoison)Enumerates all possible immediate values of V and inserts them into the set
If
is false, it fails when V may contain
undef/poison elements. Returns true if the result is complete. Otherwise,
the result is incomplete (more than MaxCount values).
NOTE: The constant values are not distinct.
Defined at line 10617 of file llvm/lib/Analysis/ValueTracking.cpp
-
GlobalVariable * collectUsedGlobalVariables (const Module & M, SmallVectorImpl<GlobalValue *> & Vec, bool CompilerUsed)Given "llvm.used" or "llvm.compiler.used" as a global name, collect the
initializer elements of that global in a SmallVector and return the global
itself.
Defined at line 870 of file llvm/lib/IR/Module.cpp
-
void logAllUnhandledErrors (Error E, raw_ostream & OS, Twine ErrorBanner)Log all errors (if any) in E to OS. If there are any errors, ErrorBanner
will be printed before the first one is logged. A newline will be printed
after each error.
This function is compatible with the helpers from Support/WithColor.h. You
can pass any of them as the OS. Please consider using them instead of
including 'error: ' in the ErrorBanner.
This is useful in the base level of your program to allow clean termination
(allowing clean deallocation of resources, etc.), while reporting error
information to the user.
Defined at line 65 of file llvm/lib/Support/Error.cpp
-
basic_string toString (Error E)Write all error messages (if any) in E to a string. The newline character
is used to separate error messages.
Defined at line 77 of file llvm/lib/Support/Error.cpp
-
bool NullPointerIsDefined (const Function * F, unsigned int AS)Check whether null pointer dereferencing is considered undefined behavior
for a given function or an address space.
Null pointer access in non-zero address space is not considered undefined.
Return value: false => null pointer dereference is undefined.
Return value: true => null pointer dereference is not undefined.
Defined at line 1175 of file llvm/lib/IR/Function.cpp
-
basic_string toStringWithoutConsuming (const Error & E)Like toString(), but does not consume the error. This can be used to print
a warning while retaining the original error object.
Defined at line 85 of file llvm/lib/Support/Error.cpp
-
ImmutablePass * createExternalAAWrapperPass (function Callback)A wrapper pass around a callback which can be used to populate the
AAResults in the AAResultsWrapperPass from an external AA.
The callback provided here will be used each time we prepare an AAResults
object, and will receive a reference to the function wrapper pass, the
function, and the AAResults object to populate. This should be used when
setting up a custom pass pipeline to inject a hook into the AA results.
Defined at line 729 of file llvm/lib/Analysis/AliasAnalysis.cpp
-
void diagnoseDontCall (const CallInst & CI)Defined at line 473 of file llvm/lib/IR/DiagnosticInfo.cpp
-
Error errorCodeToError (error_code )Helper for converting an std::error_code to a Error.
Defined at line 111 of file llvm/lib/Support/Error.cpp
-
error_code inconvertibleErrorCode ()The value returned by this function can be returned from convertToErrorCode
for Error values where no sensible translation to std::error_code exists.
It should only be used in this situation, and should never be used where a
sensible conversion to std::error_code is available, as attempts to convert
to/from this error will result in a fatal error. (i.e. it is a programmatic
error to try to convert such a value).
Defined at line 98 of file llvm/lib/Support/Error.cpp
-
error_code errorToErrorCode (Error Err)Helper for converting an ECError to a std::error_code.
This method requires that Err be Error() or an ECError, otherwise it
will trigger a call to abort().
Defined at line 117 of file llvm/lib/Support/Error.cpp
-
bool tryLess (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason)Return true if this heuristic determines order.
TODO: Consider refactor return type of these functions as integer or enum,
as we may need to differentiate whether TryCand is better than Cand.
Defined at line 3439 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
bool tryGreater (int TryVal, int CandVal, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason)Defined at line 3455 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
bool tryLatency (GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, SchedBoundary & Zone)Defined at line 3471 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
bool tryPressure (const PressureChange & TryP, const PressureChange & CandP, GenericSchedulerBase::SchedCandidate & TryCand, GenericSchedulerBase::SchedCandidate & Cand, CandReason Reason, const TargetRegisterInfo * TRI, const MachineFunction & MF)Defined at line 3787 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
unsigned int getWeakLeft (const SUnit * SU, bool isTop)Defined at line 3825 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
int biasPhysReg (const SUnit * SU, bool isTop)Minimize physical register live ranges. Regalloc wants them adjacent to
their physreg def/use.
FIXME: This is an unnecessary check on the critical path. Most are root/leaf
copies which can be prescheduled. The rest (e.g. x86 MUL) could be bundled
with the operation that produces or consumes the physreg. We'll do this when
regalloc has support for parallel copies.
Defined at line 3836 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
Error createStringError (std::string && Msg, error_code EC)Defined at line 163 of file llvm/lib/Support/Error.cpp
-
Error createStringError (std::string && Msg, error_code EC)Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, const MachineBasicBlock & MBB)Defined at line 115 of file llvm/lib/CodeGen/MachineBasicBlock.cpp
-
Printable printMBBReference (const MachineBasicBlock & MBB)Prints a machine basic block reference.
The format is:
%bb.5 - a machine basic block with MBB.getNumber() == 5.
Usage: OS
<
<
printMBBReference(MBB)
<
<
'
';
Defined at line 120 of file llvm/lib/CodeGen/MachineBasicBlock.cpp
-
Error createFileError (const Twine & , Error )Concatenate a source file path and/or name with an Error. The resulting
Error is unchecked.
Defined at line 1399 of file llvm/include/llvm/Support/Error.h
-
Error createFileError (const Twine & , size_t , Error )Concatenate a source file path and/or name with line number and an Error.
The resulting Error is unchecked.
Defined at line 1405 of file llvm/include/llvm/Support/Error.h
-
void createProfileFileNameVar (Module & M, StringRef InstrProfileOutput)Create the variable for the profile file name.
Defined at line 1539 of file llvm/lib/ProfileData/InstrProf.cpp
-
int createLoadClusterDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, bool ReorderWhileClustering)If ReorderWhileClustering is set to true, no attempt will be made to
reduce reordering due to store clustering.
Defined at line 2052 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
int createStoreClusterDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI, bool ReorderWhileClustering)If ReorderWhileClustering is set to true, no attempt will be made to
reduce reordering due to store clustering.
Defined at line 2061 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
int createCopyConstrainDAGMutation (const TargetInstrInfo * TII, const TargetRegisterInfo * TRI)Defined at line 2299 of file llvm/lib/CodeGen/MachineScheduler.cpp
-
Printable printReg (Register Reg, const TargetRegisterInfo * TRI, unsigned int SubIdx, const MachineRegisterInfo * MRI)Prints virtual and physical registers with or without a TRI instance.
The format is:
%noreg - NoRegister
%5 - a virtual register.
%5:sub_8bit - a virtual register with sub-register index (with TRI).
%eax - a physical register
%physreg17 - a physical register when no TRI instance given.
Usage: OS
<
<
printReg(Reg, TRI, SubRegIdx)
<
<
'
';
Defined at line 105 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp
-
const MachineInstr * machineFunctionIsIllegal (const MachineFunction & MF)Checks that MIR is fully legal, returns an illegal instruction if it's not,
nullptr otherwise
Defined at line 453 of file llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp
-
Printable printRegUnit (MCRegUnit Unit, const TargetRegisterInfo * TRI)Create Printable object to print register units on a
Register units are named after their root registers:
al - Single root.
fp0~st7 - Dual roots.
Usage: OS
<
<
printRegUnit(Unit, TRI)
<
<
'
';
Defined at line 136 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp
-
Printable printVRegOrUnit (VirtRegOrUnit VRegOrUnit, const TargetRegisterInfo * TRI)Create Printable object to print virtual registers and physical
registers on a
Defined at line 159 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp
-
Printable printRegClassOrBank (Register Reg, const MachineRegisterInfo & RegInfo, const TargetRegisterInfo * TRI)Create Printable object to print register classes or register banks
on a
Defined at line 170 of file llvm/lib/CodeGen/TargetRegisterInfo.cpp
-
variant getReductionStyle (bool InLoop, bool Ordered, unsigned int ScaleFactor)Defined at line 2423 of file llvm/include/../lib/Transforms/Vectorize/VPlan.h
-
template <typename FirstRange, typename... RestRanges>auto enumerate (FirstRange && First, RestRanges &&... Rest)Given two or more input ranges, returns a new range whose values are
tuples (A, B, C, ...), such that A is the 0-based index of the item in the
sequence, and B, C, ..., are the values from the original input ranges. All
input ranges are required to have equal lengths. Note that the returned
iterator allows for the values (B, C, ...) to be modified. Example:
```c++
std::vector
<char
> Letters = {'A', 'B', 'C', 'D'};
std::vector
<int
> Vals = {10, 11, 12, 13};
for (auto [Index, Letter, Value] : enumerate(Letters, Vals)) {
printf("Item %zu - %c: %d\n", Index, Letter, Value);
Value -= 10;
}
```
Output:
Item 0 - A: 10
Item 1 - B: 11
Item 2 - C: 12
Item 3 - D: 13
or using an iterator:
```c++
for (auto it : enumerate(Vals)) {
it.value() += 10;
printf("Item %zu: %d\n", it.index(), it.value());
}
```
Output:
Item 0: 20
Item 1: 21
Item 2: 22
Item 3: 23
Defined at line 2530 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename... ArgsAndPredicate>bool all_of_zip (ArgsAndPredicate &&... argsAndPredicate)Compare two zipped ranges using the provided predicate (as last argument).
Return true if all elements satisfy the predicate and false otherwise.
Return false if the zipped iterator aren't all at end (size mismatch).
Defined at line 2578 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<!std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to filter lazily some items.
Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<! std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to filter lazily some items.
Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItems (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, int * )Return true if the sequence [Begin, End) has exactly N items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to filter lazily some items.
Defined at line 2589 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, int * )Return true if the sequence [Begin, End) has N or more items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to lazily filter some items.
Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<!std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )Return true if the sequence [Begin, End) has N or more items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to lazily filter some items.
Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItemsOrMore (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted, std::enable_if_t<! std::is_base_of<std::random_access_iterator_tag, typename std::iterator_traits<std::remove_reference_t<decltype(Begin)>>::iterator_category>::value, void> * )Return true if the sequence [Begin, End) has N or more items. Runs in O(N)
time. Not meant for use with random-access iterators.
Can optionally take a predicate to lazily filter some items.
Defined at line 2614 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename IterTy, typename Pred = bool (*)(const decltype(*std::declval<IterTy>()) &)>bool hasNItemsOrLess (IterTy && Begin, IterTy && End, unsigned int N, Pred && ShouldBeCounted)Returns true if the sequence [Begin, End) has N or less items. Can
optionally take a predicate to lazily filter some items.
Defined at line 2635 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename ContainerTy>bool hasNItems (ContainerTy && C, unsigned int N)Returns true if the given container has exactly N items
Defined at line 2645 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename ContainerTy>bool hasNItemsOrMore (ContainerTy && C, unsigned int N)Returns true if the given container has N or more items
Defined at line 2651 of file llvm/include/llvm/ADT/STLExtras.h
-
template <typename ContainerTy>bool hasNItemsOrLess (ContainerTy && C, unsigned int N)Returns true if the given container has N or less items
Defined at line 2657 of file llvm/include/llvm/ADT/STLExtras.h
-
uint64_t getDwoId (const DWARFDie & CUDie)Defined at line 2712 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
basic_string remapPath (StringRef Path, const DWARFLinkerBase::ObjectPrefixMapTy & ObjectPrefixMap)Defined at line 2720 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
basic_string getPCMFile (const DWARFDie & CUDie, const DWARFLinkerBase::ObjectPrefixMapTy * ObjectPrefixMap)Defined at line 2733 of file llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
-
IRBuilder<> * unwrap (LLVMBuilderRef P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h
-
LLVMBuilderRef wrap (const int * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h
-
LLVMBuilderRef wrap (const IRBuilder<> * P)Create wrappers for C Binding types (see CBindingWrapping.h).
Defined at line 2874 of file llvm/include/llvm/IR/IRBuilder.h
-
template <typename base_ty, base_ty BestState, base_ty WorstState>raw_ostream & operator<< (raw_ostream & OS, const int & S)Defined at line 3467 of file llvm/include/llvm/Transforms/IPO/Attributor.h
-
template <typename StateType>ChangeStatus clampStateAndIndicateChange (StateType & S, const StateType & R)Helper function to clamp a state
of type
with the
information in
and indicate/return if
did change (as-in update is
required to be run again).
Defined at line 3505 of file llvm/include/llvm/Transforms/IPO/Attributor.h
-
hash_code hash_value (const APFloat & Arg)See friend declarations above.
These additional declarations are required in order to compile LLVM with IBM
xlC compiler.
Defined at line 5967 of file llvm/lib/Support/APFloat.cpp
-
int ilogb (const APFloat & Arg)Returns the exponent of the internal representation of the APFloat.
Because the radix of APFloat is 2, this is equivalent to floor(log2(x)).
For special APFloat values, this returns special error codes:
NaN ->
0 ->
Inf ->
Defined at line 1516 of file llvm/include/llvm/ADT/APFloat.h
-
APFloat scalbn (APFloat X, int Exp, RoundingMode RM)Returns: X * 2^Exp for integral exponents.
Defined at line 1525 of file llvm/include/llvm/ADT/APFloat.h
-
APFloat frexp (const APFloat & X, int & Exp, RoundingMode RM)Equivalent of C standard library function.
While the C standard says Exp is an unspecified value for infinity and nan,
this returns INT_MAX for infinities, and INT_MIN for NaNs.
Defined at line 1537 of file llvm/include/llvm/ADT/APFloat.h
-
void verifyMachineFunction (const std::string & Banner, const MachineFunction & MF)Defined at line 417 of file llvm/lib/CodeGen/MachineVerifier.cpp
-
bool isNullConstant (SDValue V)Returns true if
is a constant integer zero.
Defined at line 12829 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isNullConstantOrUndef (SDValue V)Returns true if
is a constant integer zero or an UNDEF node.
Defined at line 12834 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isNullFPConstant (SDValue V)Returns true if
is an FP constant with a value of positive zero.
Defined at line 12838 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isAllOnesConstant (SDValue V)Returns true if
is an integer constant with all bits set.
Defined at line 12843 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isOneConstant (SDValue V)Returns true if
is a constant integer one.
Defined at line 12848 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isMinSignedConstant (SDValue V)Returns true if
is a constant min signed integer value.
Defined at line 12853 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isNeutralConstant (unsigned int Opc, SDNodeFlags Flags, SDValue V, unsigned int OperandNo)Returns true if
is a neutral element of Opc with Flags.
When OperandNo is 0, it checks that V is a left identity. Otherwise, it
checks that V is a right identity.
Defined at line 12858 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue peekThroughBitcasts (SDValue V)Return the non-bitcasted source operand of
if it exists.
If
is not a bitcasted value, it is returned as-is.
Defined at line 12921 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue peekThroughOneUseBitcasts (SDValue V)Return the non-bitcasted and one-use source operand of
if it exists.
If
is not a bitcasted one-use value, it is returned as-is.
Defined at line 12927 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue peekThroughExtractSubvectors (SDValue V)Return the non-extracted vector source operand of
if it exists.
If
is not an extracted subvector, it is returned as-is.
Defined at line 12933 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue peekThroughInsertVectorElt (SDValue V, const APInt & DemandedElts)Recursively peek through INSERT_VECTOR_ELT nodes, returning the source
vector operand of
as long as
is an INSERT_VECTOR_ELT operation
that do not insert into any of the demanded vector elts.
Defined at line 12939 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue peekThroughTruncates (SDValue V)Return the non-truncated source operand of
if it exists.
If
is not a truncation, it is returned as-is.
Defined at line 12956 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isBitwiseNot (SDValue V, bool AllowUndefs)Returns true if
is a bitwise not operation. Assumes that an all ones
constant is canonicalized to be operand 1.
Defined at line 12962 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
SDValue getBitwiseNotOperand (SDValue V, SDValue Mask, bool AllowUndefs)If
is a bitwise not, returns the inverted operand. Otherwise returns
an empty SDValue. Only bits set in
are required to be inverted,
other bits may be arbitrary.
Defined at line 6238 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
ConstantSDNode * isConstOrConstSplat (SDValue N, bool AllowUndefs, bool AllowTruncation)Returns the SDNode if it is a constant splat BuildVector or constant int.
Defined at line 12972 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
ConstantSDNode * isConstOrConstSplat (SDValue N, const APInt & DemandedElts, bool AllowUndefs, bool AllowTruncation)Returns the SDNode if it is a demanded constant splat BuildVector or
constant int.
Defined at line 12981 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
ConstantFPSDNode * isConstOrConstSplatFP (SDValue N, bool AllowUndefs)Returns the SDNode if it is a constant splat BuildVector or constant float.
Defined at line 13018 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
ConstantFPSDNode * isConstOrConstSplatFP (SDValue N, const APInt & DemandedElts, bool AllowUndefs)Returns the SDNode if it is a demanded constant splat BuildVector or
constant float.
Defined at line 13026 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isNullOrNullSplat (SDValue V, bool AllowUndefs)Return true if the value is a constant 0 integer or a splatted vector of
a constant 0 integer (with no undefs by default).
Build vector implicit truncation is not an issue for null values.
Defined at line 13048 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isOneOrOneSplat (SDValue V, bool AllowUndefs)Return true if the value is a constant 1 integer or a splatted vector of a
constant 1 integer (with no undefs).
Build vector implicit truncation is allowed, but the truncated bits need to
be zero.
Defined at line 13055 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isOneOrOneSplatFP (SDValue V, bool AllowUndefs)Return true if the value is a constant floating-point value, or a splatted
vector of a constant floating-point value, of 1.0 (with no undefs).
Defined at line 13061 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isAllOnesOrAllOnesSplat (SDValue V, bool AllowUndefs)Return true if the value is a constant -1 integer or a splatted vector of a
constant -1 integer (with no undefs).
Does not permit build vector implicit truncation.
Defined at line 13066 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isOnesOrOnesSplat (SDValue N, bool AllowUndefs)Return true if the value is a constant 1 integer or a splatted vector of a
constant 1 integer (with no undefs).
Does not permit build vector implicit truncation.
Defined at line 13073 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isZeroOrZeroSplat (SDValue N, bool AllowUndefs)Return true if the value is a constant 0 integer or a splatted vector of a
constant 0 integer (with no undefs).
Build vector implicit truncation is allowed.
Defined at line 13079 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
bool isZeroOrZeroSplatFP (SDValue N, bool AllowUndefs)Return true if the value is a constant (+/-)0.0 floating-point value or a
splatted vector thereof (with no undefs).
Defined at line 13085 of file llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const Record & R)Defined at line 3037 of file llvm/lib/TableGen/Record.cpp
-
void createUnpackShuffleMask (EVT VT, SmallVectorImpl<int> & Mask, bool Lo, bool Unary)Generate unpacklo/unpackhi shuffle mask.
Defined at line 4855 of file llvm/lib/Target/X86/X86ISelLowering.cpp
-
void createSplat2ShuffleMask (MVT VT, SmallVectorImpl<int> & Mask, bool Lo)Similar to unpacklo/unpackhi, but without the 128-bit lane limitation
imposed by AVX and specific to the unary pattern. Example:
v8iX Lo -->
<
0, 0, 1, 1, 2, 2, 3, 3>
v8iX Hi -->
<
4, 4, 5, 5, 6, 6, 7, 7>
Defined at line 4875 of file llvm/lib/Target/X86/X86ISelLowering.cpp
-
ImmutablePass * createTargetTransformInfoWrapperPass (TargetIRAnalysis TIRA)Create an analysis pass wrapper around a TTI object.
This analysis pass just holds the TTI instance and makes it available to
clients.
Defined at line 1542 of file llvm/lib/Analysis/TargetTransformInfo.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const RecordKeeper & RK)Defined at line 3285 of file llvm/lib/TableGen/Record.cpp
-
void EmitDetailedRecords (const RecordKeeper & RK, raw_ostream & OS)This function is called by TableGen after parsing the files.
Defined at line 189 of file llvm/lib/TableGen/DetailedRecordsBackend.cpp
-
void EmitJSON (const RecordKeeper & RK, raw_ostream & OS)Defined at line 182 of file llvm/lib/TableGen/JSONBackend.cpp
-
void StoreIntToMemory (const APInt & IntVal, uint8_t * Dst, unsigned int StoreBytes)StoreIntToMemory - Fills the StoreBytes bytes of memory starting from Dst
with the integer held in IntVal.
Defined at line 3051 of file llvm/lib/Support/APInt.cpp
-
void LoadIntFromMemory (APInt & IntVal, const uint8_t * Src, unsigned int LoadBytes)LoadIntFromMemory - Loads the integer stored in the LoadBytes bytes starting
from Src into IntVal, which is assumed to be wide enough and to hold zero.
Defined at line 3077 of file llvm/lib/Support/APInt.cpp
-
template <typename FolderTy, typename InserterTy>IRBuilder<FolderTy, InserterTy> <deduction guide for IRBuilder> (LLVMContext & , FolderTy , InserterTy , MDNode * , ArrayRef )Defined at line of file
-
IRBuilder<> <deduction guide for IRBuilder> (LLVMContext & , MDNode * , ArrayRef )Defined at line of file
-
template <typename FolderTy>IRBuilder<FolderTy> <deduction guide for IRBuilder> (BasicBlock * , FolderTy , MDNode * , ArrayRef )Defined at line of file
-
IRBuilder<> <deduction guide for IRBuilder> (BasicBlock * , MDNode * , ArrayRef )Defined at line of file
-
IRBuilder<> <deduction guide for IRBuilder> (Instruction * , MDNode * , ArrayRef )Defined at line of file
-
template <typename FolderTy>IRBuilder<FolderTy> <deduction guide for IRBuilder> (BasicBlock * , ilist_iterator_w_bits , FolderTy , MDNode * , ArrayRef )Defined at line of file
-
IRBuilder<> <deduction guide for IRBuilder> (BasicBlock * , ilist_iterator_w_bits , MDNode * , ArrayRef )Defined at line of file
-
raw_ostream & operator<< (raw_ostream & OS, const AbstractAttribute & AA)Forward declarations of output streams for debug purposes.
{
Defined at line 3717 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, ChangeStatus S)Helpers to ease debugging through output streams and print calls.
{
Defined at line 3667 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, Kind )Defined at line 3671 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const IRPosition & )Defined at line 3693 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const AbstractState & State)Defined at line 3713 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const IntegerRangeState & State)Defined at line 3703 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const PotentialConstantIntValuesState & R)Defined at line 3722 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
raw_ostream & operator<< (raw_ostream & OS, const PotentialLLVMValuesState & R)Defined at line 3738 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
void GetReturnInfo (CallingConv::ID CC, Type * ReturnType, AttributeList attr, SmallVectorImpl<ISD::OutputArg> & Outs, const TargetLowering & TLI, const DataLayout & DL)Get the EVTs and ArgFlags collections that represent the legalized return
type of the given function. This does not require a DAG or a return value,
and is suitable for use before any DAGs for the function are constructed.
TODO: Move this out of TargetLowering.cpp.
Defined at line 2014 of file llvm/lib/CodeGen/TargetLoweringBase.cpp
-
raw_ostream & operator<< (raw_ostream & , const AAPointerInfo::Access & )Defined at line 3786 of file llvm/lib/Transforms/IPO/Attributor.cpp
-
bool operator== (const DIExpression::FragmentInfo & A, const DIExpression::FragmentInfo & B)Defined at line 3860 of file llvm/include/llvm/IR/DebugInfoMetadata.h
-
bool operator< (const DIExpression::FragmentInfo & A, const DIExpression::FragmentInfo & B)Defined at line 3866 of file llvm/include/llvm/IR/DebugInfoMetadata.h
-
raw_ostream & operator<< (raw_ostream & OS, const VPlan & Plan)Defined at line 4666 of file llvm/include/../lib/Transforms/Vectorize/VPlan.h
-
const Value * getLoadStorePointerOperand (const Value * V)A helper function that returns the pointer operand of a load or store
instruction. Returns nullptr if not load or store.
Defined at line 5100 of file llvm/include/llvm/IR/Instructions.h
-
Value * getLoadStorePointerOperand (Value * V)Defined at line 5107 of file llvm/include/llvm/IR/Instructions.h
-
const Value * getPointerOperand (const Value * V)A helper function that returns the pointer operand of a load, store
or GEP instruction. Returns nullptr if not load, store, or GEP.
Defined at line 5114 of file llvm/include/llvm/IR/Instructions.h
-
Value * getPointerOperand (Value * V)Defined at line 5121 of file llvm/include/llvm/IR/Instructions.h
-
Align getLoadStoreAlignment (const Value * I)A helper function that returns the alignment of load or store instruction.
Defined at line 5126 of file llvm/include/llvm/IR/Instructions.h
-
void setLoadStoreAlignment (Value * I, Align NewAlign)A helper function that set the alignment of load or store instruction.
Defined at line 5135 of file llvm/include/llvm/IR/Instructions.h
-
unsigned int getLoadStoreAddressSpace (const Value * I)A helper function that returns the address space of the pointer operand of
load or store instruction.
Defined at line 5146 of file llvm/include/llvm/IR/Instructions.h
-
Type * getLoadStoreType (const Value * I)A helper function that returns the type of a load or store instruction.
Defined at line 5155 of file llvm/include/llvm/IR/Instructions.h
-
std::optional<SyncScope::ID> getAtomicSyncScopeID (const Instruction * I)A helper function that returns an atomic operation's sync scope; returns
std::nullopt if it is not an atomic operation.
Defined at line 5165 of file llvm/include/llvm/IR/Instructions.h
-
void setAtomicSyncScopeID (Instruction * I, SyncScope::ID SSID)A helper function that sets an atomic operation's sync scope.
Defined at line 5182 of file llvm/include/llvm/IR/Instructions.h
-
raw_ostream & operator<< (raw_ostream & OS, LoopDisposition LD)Note: these overloaded operators need to be in the llvm namespace for them
to be resolved correctly. If we put them outside the llvm namespace, the
OS
<
<
": "
<
<
SE.getLoopDisposition(SV, InnerL);
code below "breaks" and start printing raw enum values as opposed to the
string values.
Defined at line 14012 of file llvm/lib/Analysis/ScalarEvolution.cpp
-
raw_ostream & operator<< (raw_ostream & OSBlockDisposition BD)Defined at line 14028 of file llvm/lib/Analysis/ScalarEvolution.cpp